Die Zeitstempelmethode ist die nützlichste allgemeine Methode für eine effiziente Synchronisation. Die Methode umfasst das Protokollieren des Zeitpunkts, zu dem die einzelnen Benutzer zuletzt eine Synchronisation durchgeführt haben. Mit dieser Information wird gesteuert, für welche Daten der Download in die einzelnen entfernten Datenbanken erfolgt.
MobiLink unterhält einen Zeitstempelwert, aus dem hervorgeht, wann die einzelnen Benutzer zuletzt Daten per Download übertragen haben. Dieser Wert wird als letzter Download-Zeitstempel bezeichnet. Der letzte Download-Zeitstempel wird bei zahlreichen Ereignissen als Parameter weitergegeben und kann in Synchronisationsskripten verwendet werden.
So implementieren Sie die Zeitstempel-Synchronisation für eine einzelne Tabelle
Fügen Sie in die konsolidierte Datenbank eine Spalte ein, in die der Zeitpunkt der letzten Änderung der betreffenden Zeile eingetragen werden soll. In der entfernten Datenbank ist diese Spalte nicht erforderlich. Die Spalte wird normalerweise folgendermaßen deklariert:
| DBMS | Spalte mit Änderungszeitpunkt "last modified" |
|---|---|
| Adaptive Server Anywhere |
timestamp DEFAULT timestamp
|
| Adaptive Server Enterprise |
datetime
|
| Microsoft SQL Server |
datetime
|
| Oracle |
date
|
| IBM DB2 |
timestamp
|
Vergleichen Sie in Skripten für die Ereignisse "download_cursor" und "download_delete_cursor" den ersten Parameter für den Wert in der Zeitstempelspalte.
Die folgende Tabellendeklaration und die folgenden Skripten implementieren eine Zeitstempel-Synchronisation in der Tabelle "Customer" im Beispiel "Contact":
Tabellendefinition:
CREATE TABLE "DBA"."Customer"(
"cust_id" integer NOT NULL
DEFAULT GLOBAL AUTOINCREMENT,
"name" char(40) NOT NULL,
"rep_id" integer NOT NULL,
"last_modified" timestamp NULL DEFAULT timestamp,
"active" bit NOT NULL,
PRIMARY KEY ("cust_id") )download_delete_cursor-Skript:
SELECT cust_id
FROM Customer JOIN SalesRep
ON Customer.rep_id = SalesRep.rep_id
WHERE Customer.last_modified > ?
AND ( SalesRep.ml_username != ?
OR Customer.active = 0 )download_cursor-Skript:
SELECT cust_id, Customer.name, Customer.rep_id FROM Customer key join SalesRep WHERE Customer.last_modified > ? AND SalesRep.ml_username = ? AND Customer.active = 1
Weitere Hinweise finden Sie unter Quellcode der Synchronisationslogik und Ansprechpartner im Beispiel "Contact" synchronisieren.
SQL Anywhere Studio 9.0.1
Copyright © 1989–2004 Sybase Inc. Teil-Copyright © 2001–2004 iAnywhere Solutions Inc. Alle Rechte vorbehalten.