Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » MobiLink - Serveradministration » MobiLink-Ereignisse » Synchronisationsskripten erstellen » Einführung in Synchronisationsskripten

 

Einfaches Synchronisationsskript

MobiLink stellt viele Ereignisse bereit, die Sie nutzen können, doch Sie müssen nicht unbedingt für jedes Ereignis auch Skripten erstellen. In einem einfachen Synchronisationsmodell brauchen Sie nur wenige Skripten.

Durch den Download aller Zeilen aus der Tabelle in jede einzelne entfernte Datenbank wird die Tabelle ULProduct in der Beispieldatenbank CustDB synchronisiert. In diesem Fall sind auf den entfernten Datenbanken keine Einfügungen zulässig. Sie können diese einfache Form der Synchronisation mit einem einzelnen Skript implementieren, sodass nur einem Ereignis ein Skript zugeordnet ist.

Das MobiLink-Ereignis download_cursor steuert, welche Zeilen bei einer Synchronisation per Download übertragen werden sollen. Cursorskripten müssen eine SELECT-Anweisung enthalten. Mithilfe dieser Abfragen definiert der MobiLink-Server einen Cursor. Bei einem download_cursor-Skript wählt der Cursor die Zeilen aus, die in eine bestimmte Tabelle der entfernten Datenbank geladen werden sollen.

In der Beispielanwendung CustDB gibt es ein einziges download_cursor-Skript für die Tabelle ULProduct dieser Anwendung, das die folgende Abfrage enthält:

SELECT prod_id, price, prod_name
FROM ULProduct

Diese Abfrage erstellt eine Ergebnismenge. Die Zeilen dieser Ergebnismenge werden an den Client übertragen. In diesem Beispiel werden sämtliche Zeilen der Tabelle übertragen.

Der MobiLink-Server weiß, dass diese Zeilen in die Anwendungstabelle ULProduct geschrieben werden müssen, da dieses Skript bedingt durch die Art und Weise der Speicherung in der konsolidierten Datenbank sowohl mit dem download_cursor-Ereignis als auch mit der Tabelle ULProduct verknüpft ist. Sybase Central stellt für solche Verknüpfungen bestimmte Funktionen zur Verfügung.

Bei diesem Beispiel wählt die Abfrage Daten aus einer konsolidierten Tabelle aus, die ebenfalls den Namen ULProduct hat. Die Tabellennamen müssen aber nicht unbedingt übereinstimmen. Stattdessen könnten Sie Daten einer beliebigen Tabelle bzw. einer beliebigen Tabellenkombination der konsolidierten Datenbank in die Anwendungstabelle ULProduct laden, indem Sie die Abfrage entsprechend ändern.

Sie können natürlich auch komplexere Synchronisationsskripten schreiben. So können Sie zum Beispiel ein Skript erstellen, das nur gerade geänderte Zeilen einliest oder jeder entfernten Datenbank jeweils bestimmte Daten liefert.