Sie schreiben download_cursor-Skripten, um Daten aus der konsolidierten Datenbank in eine entfernte Datenbank einzulesen. Sie müssen für jede Tabelle in der entfernten Datenbank, für die Sie ein Download von Änderungen durchführen wollen, eines dieser Skripten schreiben. Es steht Ihnen frei, auch andere Skripten zu verwenden, um den Download-Prozess anzupassen.
Jedes download_cursor-Skript muss eine SELECT-Anweisung oder einen Prozeduraufruf mit einer SELECT-Anweisung enthalten. Der MobiLink-Server verwendet diese Anweisung, um einen Cursor in der konsolidierten Datenbank zu definieren.
Das Skript muss alle Spalten auswählen, die mit den Spalten in der entsprechenden Tabelle der entfernten Datenbank übereinstimmen. Die Spalten in der konsolidierten Datenbank können andere Namen haben als die entsprechenden Spalten in der entfernten Datenbank. Ihre Datentypen müssen jedoch kompatibel sein.
Das folgende Skript kann als download_cursor-Skript für eine entfernte Tabelle dienen, die Mitarbeiterdaten enthält. Der MobiLink-Server würde dann mithilfe dieser SQL-Anweisung den Download-Cursor definieren. Das Skript liest die Daten aller Mitarbeiter ein.
SELECT emp_id, emp_fname, emp_lname FROM employee; |
Der MobiLink-Server übergibt einigen Skripten spezifische Parameter. Um diese Parameter zu verwenden, können Sie entweder benannte Parameter verwenden oder ein Fragezeichen in Ihre SQL-Anweisung einfügen. Im letzteren Fall ersetzt der MobiLink-Server den Wert des Parameters, bevor er die Anweisung in der konsolidierten Datenbank ausführt. Aus dem folgenden Skript wird ersichtlich, wie Sie benannte Parameter verwenden können.
CALL ml_add_table_script( 'Lab', 'ULOrder', 'download_cursor', 'SELECT o.order_id, o.cust_id, o.prod_id, o.emp_id, o.disc, o.quant, o.notes, o.status FROM ULOrder o WHERE o.last_modified >= {ml s.last_table_download} AND o.emp_name = {ml s.username}' ) |
Zeilenwerte können aus einer einzelnen Tabelle oder aus einem Join mehrerer Tabellen ausgewählt werden.
Der Name der entfernten Tabelle muss dabei nicht unbedingt im Skript enthalten sein. Auch braucht die entfernte Tabelle nicht denselben Namen zu haben wie die Tabelle in der konsolidierten Datenbank. Der Name der entfernten Tabelle wird durch einen Eintrag in der MobiLink-Systemtabelle ml_table festgelegt. In Sybase Central sind die entfernten Tabellen zusammen mit ihren Skripten aufgelistet.
Die Zeilen in der entfernten Tabelle müssen die Werte von emp_id, emp_fname und emp_lname enthalten. Die entfernten Spalten müssen in dieser Reihenfolge hintereinander stehen, können aber durchaus andere Namen haben. Die Spalten in der entfernten Datenbank befinden sich in derselben Reihenfolge wie die Spalten in der Referenzdatenbank.
Alle Cursorskripten müssen die Spalten genau in der Reihenfolge auswählen, in der diese in der entfernten Datenbank definiert sind. Wenn die Spaltennamen bzw. die Tabellenstruktur in der konsolidierten Datenbank anders sind, dann müssen die Spalten in der für die entfernte Datenbank bzw. die Referenzdatenbank korrekten Reihenfolge ausgewählt werden. Die Spalten werden den Spalten der entfernten Datenbank in der Reihenfolge der SELECT-Anweisung zugeordnet.
Wenn Sie eine UltraLite-Anwendung erstellen, fügt der UltraLite-Generator automatisch ein Beispiel-Download-Skript für jede Tabelle der Anwendung ein. Er fügt diese Beispielskripten in die Referenzdatenbank ein. Die Beispielskripten gehen davon aus, dass die konsolidierte Datenbank dieselben Tabellen wie die Anwendung enthält. Sie müssen die Beispielskripten ändern, falls Ihre konsolidierte Datenbank eine andere Struktur hat, in jedem Fall aber stellen diese Skripten hierfür eine Grundlage dar.
Das download_cursor-Skript muss alle Spalten in derselben Reihenfolge enthalten, in der sie in der entfernten Datenbank festgelegt sind.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |