Condividi tramite


Pull di dati da server a client

RDA (Remote Data Access) viene spesso avviato tramite il pull di dati da un database client di Microsoft SQL Server a un database client di SQL Server 2005 Compact Edition (SQL Server Compact Edition). Quando il pull di dati viene eseguito da un server a un client, il pull viene avviato da SQL Server Compact Edition. SQL Server Compact Edition estrae i dati da un database di SQL Server e li archivia in una tabella di un database di SQL Server Compact Edition.

Per eseguire il pull dei dati dal server, è possibile configurare RDA nell'applicazione a livello di programmazione. Quando si imposta e avvia un'operazione di pull utilizzando una delle due tecniche, è necessario specificare:

  • Il database da cui si desidera eseguire il pull dei dati
  • L'autenticazione del server Web necessaria per la connessione al server Web
  • L'autenticazione di SQL Server utilizzata
  • Le tabelle che verranno copiate e propagate al client
  • Le opzioni di pull, incluse la tabella di rilevamento e una tabella degli errori

Rilevamento

Un'applicazione è in grado di rilevare le modifiche apportate a una tabella di SQL Server Compact Edition impostando le opzioni di rilevamento appropriate. SQL Server Compact Edition rileva tutte le modifiche di inserimento, aggiornamento ed eliminazione.

Le applicazioni possono quindi chiamare il metodo Push per propagare le modifiche alla tabella originale di SQL Server.

Le operazioni di pull e push RDA (Remote Data Access) con rilevamento utilizzano il controllo della concorrenza ottimistica. SQL Server non mantiene il blocco dei record di cui è stato eseguito il pull. Quando l'applicazione chiama il metodo Push, le modifiche apportate al database locale di SQL Server Compact Edition vengono pertanto applicate incondizionatamente al database di SQL Server. Ciò potrebbe causare la perdita delle modifiche apportate da altri utenti del database di SQL Server.

È consigliabile utilizzare i metodi Pull e Push in caso di partizione logica dei record in corso di aggiornamento e i conflitti sono poco probabili. I metodi Pull e Push con rilevamento, ad esempio, potrebbero essere utilizzati in un'applicazione di servizio che consente di tenere traccia di ogni tecnico che disponga di un elenco univoco di chiamate di assistenza.

RDA_TRACKOPTION specifica se in SQL Server Compact Edition è necessario rilevare le modifiche apportate alla tabella di cui è stato eseguito il pull. Specificare TRACKINGON o TRACKINGON_INDEXES se si desidera aggiornare la tabella di cui è stato eseguito il pull sul dispositivo basato su Windows Mobile e quindi eseguire il push dei record modificati alla tabella originale di SQL Server. Quando si specifica TRACKINGON, nella tabella di cui è stato eseguito il pull vengono creati vincoli PRIMARY KEY. Quando viene specificato TRACKINGON_INDEXES, i vincoli PRIMARY KEY e gli indici aggiuntivi esistenti nella tabella server vengono creati nella tabella di cui è stato eseguito il pull. In entrambi i casi, SQL Server Compact Edition rileva tutti i record inseriti, aggiornati o eliminati nella tabella locale.

[!NOTA] Un indice viene creato solo in caso di pull delle colonne che costituiscono l'indice stesso. Nella tabella di cui viene eseguito il pull non vengono creati vincoli di integrità referenziale, poiché il database di SQL Server Compact Edition potrebbe non contenere tabelle correlate, che devono quindi essere aggiunte utilizzando codice all'interno dell'applicazione.

Quando l'applicazione chiama il metodo Push, SQL Server Compact Edition utilizza le informazioni sulle modifiche per individuare i record inseriti, aggiornati ed eliminati nella tabella locale di SQL Server Compact Edition e ridistribuisce tali modifiche in SQL Server.

Le restrizioni seguenti vengono applicate quando si imposta RDA_TRACKOPTION su TRACKINGON o su TRACKINGON_INDEXES:

Se l'istruzione SELECT restituisce un set di record che non è possibile aggiornare, si verifica un errore.

È necessario definire una chiave primaria sul set di record aggiornabile restituito dall'istruzione SELECT. L'istruzione SELECT può fare riferimento a una vista o a una stored procedure, ma la vista o la stored procedure può fare riferimento solo a una tabella e deve essere aggiornabile.

Quando si specifica TRACKINGON_INDEXES, gli indici presenti nella tabella di SQL Server e significativi per le colonne indicate in SQLSelectString vengono creati sulla base della tabella di SQL Server Compact Edition locale specificata in LocalTableName.

Vedere anche

Attività

Procedura: Pull dei dati (a livello di programmazione)

Guida in linea e informazioni

Assistenza su SQL Server Compact Edition