Ein Datenskript, das Zeilen aus einer synchronisierten Tabelle in der konsolidierten Datenbank für die Konflikterkennung auf Zeilenebene 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.primary-key-1 |
Erforderlich. Der erste Primärschlüssel-Spaltenwert, referenziert nach Spaltenname oder Spaltennummer. |
1 (2, falls der Benutzername referenziert wird) |
r.primary-key-2 |
Erforderlich. Der zweite Primärschlüssel-Spaltenwert, referenziert nach Spaltenname oder Spaltennummer. |
2 |
... |
... |
... |
r.primary-key-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 ist ein Begleitskript des Ereignisses upload_update.
Die Spalten der Ergebnismenge müssen mit Anzahl und Reihenfolge der für diese Tabelle aus der entfernten Datenbank hochgeladenen Spalten übereinstimmen. Wenn die zurückgegebenen Werte nicht mit dem Pre-Image in der hochgeladenen Zeile übereinstimmen, gilt dies als Konflikt.
Verwenden Sie keine READPAST-Tabellen-Hints in upload_fetch-Skripten. Wenn das Skript eine gesperrte Zeile mit READPAST überspringt, nimmt die Synchronisationslogik an, dass die Zeile gelöscht wurde. Abhängig von den definierten Skripten wird entweder die hochgeladene Aktualisierung ignoriert oder die Konfliktlösung ausgelöst. Ein Ignorieren der Aktualisierung ist ein nicht akzeptables, gefährliches Verhalten. Das Auslösen einer Konfliktlösung stellt, je nach implementierter Lösungslogik, kein Problem dar.
Für jede Tabelle in der entfernten Datenbank kann ein upload-fetch- oder ein upload_fetch_column_conflict-Skript vorhanden sein.
Dieses Skript muss in SQL implementiert werden. Hinweise zur Java- oder .NET-Verarbeitung von Zeilen finden Sie unter Direkte Zeilenbehandlung.
Dieses Skript wird eventuell ignoriert, wenn keines der folgenden Skripte definiert wurde: upload_new_row_insert, upload_old_row_insert und resolve_conflict.
Das folgende SQL-Skript stammt aus dem Contact-Beispiel und befindet sich in %SQLANYSAMP16%\MobiLink\Contact\build_consol.sql. Hiermit werden Konflikte erkannt, die auftreten, wenn Zeilen übertragen werden, die in der Tabelle Product der entfernten Datenbank aktualisiert wurden. Mit diesem Skript werden Zeilen aus der Tabelle Product ausgewählt, jedoch abhängig vom Schema Ihrer konsolidierten und entfernten Datenbank können die beiden Tabellennamen unterschiedlich sein.
CALL ml_add_table_script( 'ver1', 'Product', 'upload_fetch', 'SELECT id, name, size, quantity, unit_price FROM Product WHERE id={ml r.id}' ) |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |