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 zwei Skripten implementieren. In diesem Fall ist nur zwei Ereignissen ein Skript zugeordnet.
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.
Das zweite erforderliche Ereignis ist download_delete_cursor, für das ein Skript, zusammen mit download_cursor, für jede herunterzuladende Tabelle definiert sein muss. In diesem einfachen Beispiel werden keine Löschungen beim Herunterladen ausgeführt und daher können Sie das Skript einfach als --{ml_ignore} definieren.
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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |