Freigeben über


RDA-Einschränkungen

Für den Remotedatenzugriff (Remote Data Access, RDA) in Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) gelten folgende Einschränkungen:

  • Unterscheidung von Groß-/Kleinschreibung. Seit der Version SQL Server Compact 3.5 Service Pack 1 unterstützt SQL Server Compact das Festlegen von Sortierungen auf Datenbankebene, bei denen die Groß-/Kleinschreibung berücksichtigt wird. Bei Objektnamen, wie Tabellennamen, Schlüsselwörter der Sprache, Funktionen und Sichten, wird jedoch in einer SQL Server Compact-Datenbank die Groß-/Kleinschreibung auch dann nicht berücksichtigt, wenn die Groß-/Kleinschreibung bei der Sortierung berücksichtigt wird.
    Objekte werden in einer SQL Server Compact-Datenbank anders behandelt als in einer SQL Server-Datenbank. Beispielsweise werden die beiden Tabellen "MYTABLE" und "mytable" in einer SQL Server-Datenbank, bei der nach Groß- und Kleinschreibung unterschieden wird, als unterschiedliche Objekte behandelt. Dieselben Tabellennamen verursachen in einer SQL Server Compact-Datenbank einen Namenskonflikt. Umgekehrt verursachen die beiden Werte "MYVALUE" und "myvalue" in SQL Server Compact keine Primärschlüsselverletzung mehr, da sie als unterschiedliche Werte behandelt werden. Sie verursachen auch in einer SQL Server-Datenbank, in der die Groß-/Kleinschreibung berücksichtigt wird, keinen Konflikt.
  • ROWGUID: Wenn Sie über RDA einen Pull-Vorgang für Daten aus einer Tabelle in SQL Server ausführen, für die auch eine Replikation auf dem Server ausgeführt wird, müssen Sie die Systemspalte mit dem ROWGUIDCOL-Attribut ausschließen. Standardmäßig lautet der Name dieser Spalte RowGuid.
    Beispiel: Für den SQLSelectString-Parameter in der Pull-Methode verwenden Sie SELECT CompanyName, ContactName FROM Customers anstelle von SELECT * FROM Customers.
  • Trigger: SQL Server Compact 3.5 unterstützt keine Trigger. Trigger können jedoch für die SQL Server-Tabelle festgelegt worden sein, aus der RDA Daten aus einer Tabelle per Pull-Vorgang abruft. Für nachverfolgte Tabellen können die Trigger von SQL Server ausgeführt werden, wenn Änderungen per Push zurück zu SQL Server übertragen werden. Möglicherweise müssen Sie in der Triggerlogik SET NOCOUNT ON angeben. Damit wird festgelegt, dass die Anzahl von betroffenen Zeilen nicht zurückgegeben werden soll. Wird nämlich "Keine Zeilen betroffen" zurückgegeben, wird damit ein Fehler für die RDA-Methode Push ausgelöst.
  • Tabellen und Spalten: Für nachverfolgte Tabellen sind 1017 Spalten verfügbar (1024 abzüglich sieben Systemspalten). Diese sieben Systemspalten werden geschützt und für nachverfolgte RDA-Tabellen verwendet.
  • Berechnete Spalten: Die Pull-Methode schlägt fehl, wenn das Recordset berechnete Spalten enthält.
  • IDENTITY-Spalten: Wenn Sie IDENTITY-Spalten verwenden, um Eindeutigkeit zu generieren, werden IDENTITY-Spalten von RDA nicht dynamisch verwaltet. Der Standardanfangswert für eine IDENTITY-Spalte auf dem Gerät ist immer SEED=1, INCREMENT=1. In SQL Server Compact 3.5 können Sie mithilfe der ALTER TABLE-Anweisung die Identitätswerte SEED und INCREMENT in der Tabelle der lokalen Datenbank ändern. Sie können dadurch den Identitätsbereich für jedes Gerät manuell verwalten. Sie müssen den größten IDENTITY-Wert ermitteln und den Ausgangswert anpassen, bevor Sie Eingaben in die Tabelle einfügen. Beispiel: Wenn ermittelt wird, dass 99 der größte IDENTITY-Wert ist, dann legen Sie den nächsten IDENTITY-Wert mithilfe von ALTER TABLE Orders ALTER COLUMN OrderId IDENTITY (100,1) auf 100 fest.

Schemaeinschränkungen

SQL Server Compact 3.5 kann Änderungen der sich daraus ergebenden SQL Server Compact 3.5-Tabelle nachverfolgen. Wenn die entsprechende Option für das Nachverfolgen angegeben werden, werden von SQL Server Compact 3.5 alle Einfügungen, Aktualisierungen und Löschungen nachverfolgt, die an der lokalen SQL Server Compact 3.5-Tabelle vorgenommen werden. Dann kann die Anwendung die Push-Methode aufrufen, um die Änderungen wieder zurück zur ursprünglichen SQL Server-Tabelle zu übertragen.

Bei den über RDA nachverfolgten Methoden Pull und Push wird die Steuerung durch vollständige Parallelität verwendet. SQL Server sperrt durch einen Pull-Vorgang übertragene Datensätze nicht. Wird von der Anwendung die Push-Methode aufgerufen, werden die vorgenommenen Änderungen in der lokalen SQL Server Compact 3.5-Datenbank uneingeschränkt auf die SQL Server-Datenbank angewendet. Dies kann dazu führen, dass Änderungen, die von anderen Benutzern der SQL Server-Datenbank vorgenommen wurden, verloren gehen.

Verwenden Sie die nachverfolgten Methoden Pull und Push, wenn die Datensätze, die Sie aktualisieren, logisch partitioniert sind und die Wahrscheinlichkeit für Konflikte gering ist. So können z. B. die nachverfolgten Methoden Pull und Push in einer Anwendung für den Außendienst verwendet werden, mit deren Hilfe jeder Techniker nachverfolgt wird, der über eine eindeutige Liste von Dienstanrufen verfügt.

An einer SQL Server Compact 3.5-Tabelle, die mit einem nachverfolgten Pull-Vorgang erstellt wurde, können Sie folgende Schemaänderungen vornehmen:

  • Ändern des Ausgangs- oder Inkrementwerts der Identitätsspalte
  • Hinzufügen oder Löschen von DEFAULT-Einschränkungen
  • Hinzufügen oder Löschen von Fremdschlüsseln
  • Hinzufügen oder Löschen von Indizes
  • Löschen der Tabelle

Folgende Schemaänderungen können Sie an einer SQL Server-Tabelle nicht vornehmen, wenn gerade ein nachverfolgter Pull-Vorgang verarbeitet wird:

  • Hinzufügen, Löschen oder Umbenennen von Spalten
  • Umbenennen der Tabelle
  • Löschen eines Primärschlüssels
  • Ändern einer Datentypdefinition

Um diese Schemaänderungen an der SQL Server-Tabelle vorzunehmen, müssen Sie die SQL Server Compact 3.5-Tabelle löschen und dann erneut einen Pull-Vorgang für die geänderte SQL Server-Tabelle ausführen.