Ausführen von Push-Vorgängen, um Daten vom Client zum Server zu übertragen
Das Ausführen von Push-Vorgängen, um Daten von einem Client zu einem Server zu übertragen, schließt das Weitergeben der Änderungen von Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) zurück zu einer SQL Server-Tabelle ein. Weitere Informationen finden Sie unter "Push-Methode".
Die lokale SQL Server Compact Edition-Tabelle muss in der Anwendung erstellt worden sein, indem die Pull-Methode mit aktivierter Nachverfolgungsoption aufgerufen wurde.
Bei den über den Remotedatenzugriff (Remote Data Access, RDA) nachverfolgten Methoden Pull und Push wird die Steuerung durch vollständige Parallelität verwendet. SQL Server sperrt per Pull übertragene Datensätze nicht. Wird von der Anwendung die Push-Methode aufgerufen, werden die vorgenommenen Änderungen in der lokalen SQL Server Compact Edition-Datenbank uneingeschränkt auf die SQL Server-Datenbank angewendet. Dadurch gehen möglicherweise Änderungen verloren, die von anderen Benutzern der SQL Server-Datenbank vorgenommen wurden.
Batchverarbeitung
RDA_BATCHOPTION gibt an, ob SQL Server Compact Edition die Änderungen, die an die SQL Server-Tabelle gesendet werden, in Batches verarbeiten soll. Die Standardeinstellung ist BATCHINGOFF. Hierbei werden Änderungen (Einfügungen, Aktualisierungen und Löschvorgänge) in Form einzelner Transaktionen auf die SQL Server-Tabelle angewendet. Keine Transaktion ist vom Erfolg der anderen abhängig. BATCHINGON gibt an, dass alle Änderungen als eine einzige Transaktion gesendet werden sollen. In diesem Fall müssen alle Änderungen erfolgreich angewendet werden, damit die Transaktion selbst erfolgreich abgeschlossen wird. Wenn bei einer Änderung ein Fehler auftritt, schlägt die gesamte Transaktion fehl. In diesem Fall werden keine Änderungen auf die SQL Server-Tabelle angewendet. Auch wenn BATCHINGON nicht die Standardoption ist, werden einige Entwickler diesen Mechanismus hilfreich finden, da er das Schreiben von Code zur Konfliktbeseitigung erleichtern kann. Weitere Informationen finden Sie unter Konflikterkennung und -berichterstellung für RDA.
BATCHINGON und BATCHINGOFF geben nicht nur den ersten der jeweils aufgetretenen Fehler, sondern alle Fehler an die Fehlertabelle zurück. Wenn beispielsweise BATCHINGON angegeben ist und drei von fünf Änderungen fehlschlagen, werden keine Änderungen angewendet und alle drei Fehler in der Fehlertabelle gespeichert. Wenn BATCHINGOFF angegeben ist, werden die drei Fehler ebenfalls in der Fehlertabelle gespeichert und die beiden anderen Änderungen auf die SQL Server-Tabelle angewendet.
Transaktionen ohne Batch
Bei der Ausführung von Transaktionen ohne Batch (BATCHINGOFF) erfolgt die Konflikterkennung auf Zeilenebene. Die den Konflikt verursachende Zeile wird an die Anwendung zurückgegeben und in einer angegebenen Fehlertabelle gespeichert. Wenn die Anwendung beispielsweise versucht, einen Push für eine Zeile zu SQL Server auszuführen, die jedoch ungültig ist, wird die Zeile zur Anwendung zurückgegeben und zusammen mit einer Fehlermeldung, die auf den Konflikt hinweist, in der Fehlertabelle gespeichert.
Wenn eine Zeile, die einen Konflikt verursacht, in der Fehlertabelle gespeichert wird, wird diese Zeile aus der ursprünglichen Datenbank auf dem Gerät entfernt. Sie müssen die Anwendung so konzipieren, dass die Benutzer die in Konflikt stehenden Daten korrigieren und diese Daten wieder mit der ursprünglichen Windows Mobile-basierten Datenbank zusammenführen können.
Batchtransaktionen
RDA bietet auch die Unterstützung für Push-Vorgänge mithilfe der Batchverarbeitung (BATCHINGON). Hierbei müssen die Push-Vorgänge für alle Zeilen erfolgreich sein, damit der gesamte Push abgeschlossen werden kann. Wenn bei einer Zeile ein Fehler auftritt, schlägt die gesamte Push-Transaktion fehl, und es erfolgt keine Aktualisierung der Daten. Die Konfliktzeilen werden in die Fehlertabelle kopiert. Anders als bei Push-Vorgängen ohne Batch bleibt die ursprüngliche Windows Mobile-basierte Datenbank intakt. Sie müssen die Anwendung so konzipieren, dass die Benutzer die in Konflikt stehenden Daten korrigieren und diese wieder mit der ursprünglichen Windows Mobile-basierten Datenbank zusammenführen können. Die Fehlertabelle wird automatisch bereinigt, bevor eine Zeile, die einen Konflikt verursacht, in die Tabelle kopiert wird. Auf diese Weise ist sichergestellt, dass die Tabelle nur die Konflikte des letzten Push-Vorgangs enthält.
Siehe auch
Tasks
Vorgehensweise: Daten mithilfe eines Push-Vorgangs senden (programmgesteuert)