Mehrbenutzerzugriff und Remotedatenzugriff (RDA)

Mehrbenutzerzugriff ist in Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5 ) 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 3.5 -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 3.5 -Datenbank über mehrere Verbindungen bietet Entwicklern ein einfacheres Modell für die Entwicklung. Da das SQL Server Compact 3.5 -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 3.5 -Datenbankmodul Daten nach Bedarf für bestimmte Vorgänge gesperrt.

Hinweis

Einige 64-Bit-Plattformszenarien unterstützen den gleichzeitigen Zugriff auf eine Datenbankdatei mit älteren Versionen von SQL Server Compact nicht. Informationen über 64-Bit-Komponenten finden Sie unter Verwaltung von 64-Bit-Datenbankanwendungen.

Ä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 Werts 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 3.5 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) .