Ein Datenskript, das Zeilen aus einer synchronisierten Tabelle in der konsolidierten Datenbank für die Konflikterkennung auf Spaltenebene abruft.
In SQL-Skripten können Sie Ereignisparameter mit ihrem Namen oder mit einem Fragezeichen angeben. Die Verwendung von Fragezeichen ist veraltet und es wird empfohlen, benannte Parameter zu verwenden. Sie können nicht Namen und Fragezeichen in einem Skript mischen. Wenn Sie Fragezeichen verwenden, müssen die Parameter in der unten gezeigten Reihenfolge stehen und sind nur dann optional, wenn keine nachfolgenden Parameter angegeben wurden. (Sie müssen beispielsweise Parameter 1 verwenden, wenn Sie Parameter 2 verwenden möchten.) Wenn Sie benannte Parameter verwenden, können Sie beliebige Teilmengen der Parameter in beliebiger Reihenfolge angeben.
Parametername für SQL-Skripten | Beschreibung | Reihenfolge (veraltet für SQL) |
---|---|---|
s.remote_id |
VARCHAR(128). Die entfernte ID von MobiLink. Sie können die entfernte ID nur dann referenzieren, wenn Sie benannte Parameter verwenden. |
Nicht anwendbar |
s.username |
VARCHAR(128). Der MobiLink-Benutzername. Dieser Parameter ist optional. |
Optional |
s.Skriptversion | VARCHAR(128). Optionaler IN-Parameter, mit dem angegeben wird, dass der MobiLink-Server die bei der aktuellen Synchronisation verwendete Skriptversionszeichenfolge an diesen Parameter übergibt. Fragezeichen können nicht verwendet werden, um diesen Parameter anzugeben. |
Nicht anwendbar |
r.pk-column-1 |
Erforderlich. Der erste Primärschlüssel-Spaltenwert, referenziert nach Spaltenname oder Spaltennummer. |
1 (2, falls der Benutzername referenziert wird) |
... | ... | ... |
r.pk-column-N |
Erforderlich. Der letzte Primärschlüssel-Spaltenwert, referenziert nach Spaltenname oder Spaltennummer. |
N (N+1, falls der Benutzername referenziert wird) |
Keine.
Das Skript upload_fetch_column_conflict ist ein Begleitskript des Ereignisses upload_update.
Dieses Skript kann nur für entfernte Tabellen ohne BLOBs definiert werden.
Mit diesem Skript erkennt der MobiLink-Server nur dann einen Konflikt für eine Zeile, wenn dieselbe Spalte seit der letzten Synchronisation in der entfernten Datenbank und in der konsolidierten Datenbank aktualisiert wurde. Verschiedene Benutzer können dieselbe Zeile aktualisieren, ohne einen Konflikt zu generieren, sofern sie nicht dieselbe Spalte aktualisieren.
Mit dem Skript upload_fetch_column_conflict könnten Sie beispielsweise das Erkennen eines Konflikts vermeiden, wenn einer der entfernten Benutzer die Spalte quant der Tabelle ULOrder aktualisert hat und ein anderer entfernter Benutzer die Spalte notes derselben Zeile. Ein Konflikt wird nur erkannt, wenn beide Benutzer die Spalte quant aktualisiert hätten.
Die Konflikterkennung erfolgt in der Regel viel schneller, wenn sie im Skript upload_update auf einmal ausgeführt wird. Siehe upload_update (Tabellenereignis).
Wenn Sie ein Skript upload_fetch_column_conflict verwenden und kein Konflikt erkannt wird, stammen die in Ihr Skript upload_update übergebenen Zeilenwerte entweder aus dem Upload der entfernten Datenbank oder aus den aktuellen Werten der konsolidierten Datenbank gemäß Ihrem Skript upload_fetch_column_conflict. Der Wert der entfernten Datenbank wird für Spalten verwendet, die in der entfernten Datenbank aktualisiert wurden. Andernfalls wird der aktuelle Wert der konsolidierten Datenbank verwendet. Mit anderen Worten: Nur die Spalten, die in der entfernten Datenbank aktualisiert wurden, werden in der konsolidierten Datenbank aktualisiert.
Für jede Tabelle in der entfernten Datenbank kann ein upload-fetch- oder ein upload_fetch_column_conflict-Skript vorhanden sein.
Dieses Skript wird eventuell ignoriert, wenn keines der folgenden Skripte definiert wurde: upload_new_row_insert, upload_old_row_insert und resolve_conflict.
Dieses Skript muss in SQL implementiert werden. Hinweise zur Java- oder .NET-Verarbeitung von Zeilen finden Sie unter Direkte Zeilenbehandlung.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |