Share via


Mehrbenutzerzugriff und Remotedatenzugriff (RDA)

Mehrbenutzerzugriff ist in Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) jederzeit verfügbar, auch beim Remotedatenzugriff (Remote Data Access, RDA). Eine Pull- oder Push-Aktion kann ausgeführt werden, während ein anderer Benutzer auf dieselbe SQL Server Compact Edition-Datenbank zugreift.

Weil ein Pull-Vorgang erfordert, dass die entsprechende lokale Tabelle zum Zeitpunkt des Pulls nicht vorhanden ist, und die Tabelle während des Pull-Vorgangs der Daten vom Server erstellt wird, kann auf die entsprechende Tabelle erst dann zugegriffen werden, wenn der Pull-Vorgang abgeschlossen ist. Wenn Daten mithilfe eines Pushs zum Server gesendet werden und Datenänderungen nach dem Start des Push-Vorgangs auftreten, werden diese Änderungen beim nächsten Push-Vorgang zum Server gesendet. Wenn die Daten vom Server nach einem bestimmten Push zum Server aktualisiert werden müssen, werden von der Anwendung zusätzlichen Änderungen an der Tabelle erst dann zugelassen, wenn sowohl der Push- als auch der Pull-Vorgang abgeschlossen sind. Damit wird sichergestellt, dass die Änderungen nicht verloren gehen, wenn die Tabelle gelöscht wird.

Die Möglichkeit des gleichzeitigen Zugriffs auf eine SQL Server Compact Edition-Datenbank über mehrere Verbindungen bietet Entwicklern ein einfacheres Modell für die Entwicklung. Da das SQL Server Compact Edition-Datenbankmodul Anforderungen von mehreren Anwendungen bzw. mehrere Verbindungsanforderungen von einer einzelnen Anwendung bearbeitet, müssen Entwickler den Datenbankzugriff nicht planen. Wenn mehrere Verbindungen erforderlich sind, werden vom SQL Server Compact Edition-Datenbankmodul Daten nach Bedarf für bestimmte Vorgänge gesperrt.

Ändern von Primärschlüsseln während der Synchronisierung

Für eine RDA-nachverfolgte Tabelle werden die Aktualisierungen, Einfügungen und Löschungen basierend auf dem Primärschlüssel nachverfolgt. Da Mehrbenutzerzugriff auf die Primärschlüsselspalten möglich ist, ist es wichtig, dass die Werte der Primärschlüsselspalte nicht während der Synchronisierung geändert werden.

Warnung   Obwohl das Ändern eines Wertes in den Primärschlüsselspalten selten vorkommt, können Fehler und Datenverluste auftreten, wenn dabei eine Tabelle synchronisiert wird, in der der Primärschlüssel geändert wurde.

Beispiel

In der A-Tabelle wird ein Primärschlüsselwert von 1 in 2 geändert. Der Wert 1 wurde in einer von RDA verwendeten Nachverfolgungsspalte gespeichert. Dadurch ist SQL Server Compact Edition bei einem Push-Vorgang bekannt, welcher Wert beim Aktualisieren der Daten auf den neuen Wert als Suchkriterium verwendet werden soll.

Von der Anwendung wird der Push-Vorgang initiiert, und der neue Wert 2 wird in der Uploadnachricht an die SQL Server-Datenbank mit dem Suchwert 1 gesendet. Wird der neue Datenwert jedoch während der Synchronisierung geändert, wird der Suchwert der Nachverfolgungsspalte nicht von 1 in 2 geändert, weil der Push-Vorgang nicht abgeschlossen ist. Wenn der Push-Vorgang erfolgreich ist, schlägt der nächste Push-Vorgang von dieser Zeile immer fehl. Das Suchkriterium 1 ist nicht mehr gültig, weil der Wert des Primärschlüssels beim Server von 1 in 2 geändert wurde.

Weitere Informationen zum Mehrbenutzerzugriff finden Sie unter Mehrbenutzerzugriff. Weitere Informationen zu Sperren finden Sie unter Sperren (SQL Server Compact Edition).

Siehe auch

Hilfe und Information

Informationsquellen für SQL Server Compact Edition