Condividi tramite


Push di dati da client a server

Il push di dati da un client a un server include la propagazione delle modifiche da Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) a una tabella di SQL Server. Per ulteriori informazioni, vedere Metodo Push.

È necessario che l'applicazione abbia creato la tabella di SQL Server Compact 3.5 locale chiamando il metodo Pull con l'opzione di rilevamento attivata.

I metodi RDA Pull e Push con rilevamento utilizzano il controllo di concorrenza ottimistica. SQL Server non tiene bloccati i 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.

Esecuzione di batch

RDA_BATCHOPTION specifica se SQL Server Compact 3.5 debba eseguire il batch delle modifiche inviate alla tabella di SQL Server. L'impostazione predefinita è BATCHINGOFF, con cui le modifiche di inserimento, aggiornamento ed eliminazione vengono applicate alla tabella di SQL Server come singole transazioni. L'esito positivo di ogni transazione è indipendente da altre transazioni. BATCHINGON specifica che tutte le modifiche devono essere inviate in un'unica transazione. In questo caso, per completare la transazione è necessario che tutte le modifiche vengano apportate correttamente. Se una delle modifiche non viene apportata correttamente, l'intera transazione avrà esito negativo e nessuna delle modifiche verrà applicata alla tabella di SQL Server. BATCHINGON non è l'opzione predefinita, tuttavia potrebbe costituire un meccanismo più semplice da utilizzare per lo sviluppo di codice per la risoluzione dei conflitti. Per ulteriori informazioni, vedere Rilevamento e segnalazione dei conflitti RDA.

Sia BATCHINGON che BATCHINGOFF restituiscono tutti gli errori, non solo l'ultimo che si è verificato, nella tabella degli errori. Se ad esempio si specifica BATCHINGON e tre modifiche su cinque hanno esito negativo, nessuna modifica viene applicata e i tre errori vengono tutti archiviati nella tabella degli errori. Se si specifica BATCHINGOFF, gli stessi tre errori vengono archiviati nella tabella degli errori e le altre due modifiche vengono applicate alla tabella di SQL Server.

Transazioni non batch

Durante le transazioni non batch (opzione BATCHINGOFF), i conflitti vengono rilevati a livello di riga. La riga in conflitto viene restituita all'applicazione e archiviata in una tabella degli errori specifica. Se ad esempio l'applicazione tenta di eseguire il push di una riga non valida a SQL Server, la riga verrà restituita all'applicazione e archiviata nella tabella degli errori insieme a un messaggio di errore che indica il conflitto.

Quando una riga in conflitto viene restituita alla tabella degli errori, la riga viene rimossa dal database originale sul dispositivo. È necessario progettare l'applicazione in modo da consentire all'utente di correggere i dati in conflitto e unirli al database originale basato su Windows Mobile.

Transazioni batch

RDA supporta inoltre un push batch (opzione BATCHINGON) che richiede che tutte le righe siano corrette per consentire l'elaborazione dell'intero push. Se una riga non è corretta, l'intera transazione avrà esito negativo e i dati non verranno aggiornati. Le righe in conflitto vengono copiate nella tabella degli errori. Diversamente dal push non batch, il database originale basato su Windows resta intatto. È necessario progettare l'applicazione in modo da consentire all'utente di correggere i dati in conflitto e unirli al database originale basato su Windows Mobile. La tabella degli errori viene pulita automaticamente prima della copia di righe in conflitto in modo che contenga solo i conflitti riportati nel corso dell'ultima operazione di push.

Vedere anche

Altre risorse

Procedura: Push di dati con l'oggetto RDA (a livello di programmazione)

Guida e informazioni

Assistenza (SQL Server Compact 3.5 Service Pack 1)