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 Compact 3.5 (SQL Server Compact 3.5). Quando il pull di dati viene eseguito da un server a un client, il pull viene avviato da SQL Server Compact 3.5. SQL Server Compact 3.5 estrae i dati da un database di SQL Server e li archivia in una tabella di un database di SQL Server Compact 3.5.
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 3.5 impostando le opzioni di rilevamento appropriate. SQL Server Compact 3.5 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 3.5 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 3.5 è 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 3.5 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 3.5 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 3.5 utilizza le informazioni sulle modifiche per individuare i record inseriti, aggiornati ed eliminati nella tabella locale di SQL Server Compact 3.5 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 recordset che non è possibile aggiornare, si verifica un errore.
È necessario definire una chiave primaria sul recordset 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 3.5 locale specificata in LocalTableName.
Vedere anche
Altre risorse
Procedura: Pull di dati con l'oggetto RDA (a livello di programmazione)