タイムスタンプによる方法は、効率よくダウンロードするために最も便利な一般的な手法です。この方法では、各ユーザが最後に同期を行った時間が追跡され、それ以降に変更されたローだけがダウンロードされます。
前提条件
この作業を実行するための前提条件はありません。
内容と備考
Mobile Link は、各 Mobile Link ユーザが最後にデータをダウンロードした日時を示す TIMESTAMP 値を管理します。この値は、「最終ダウンロード時刻」と呼ばれます。
テーブル用にタイムスタンプベースの同期を実装するには、統合データベースで、ローの最終修正時刻を保持する last_modified カラムを追加します。通常、このカラムは次のように宣言されます。
DBMS | 最終変更カラム |
---|---|
Adaptive Server Enterprise | datetime
|
IBM DB2 LUW | timestamp NOT NULL GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP
|
Microsoft SQL Server | datetime
|
MySQL | timestamp default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
Oracle | timestamp
|
SQL Anywhere | timestamp DEFAULT timestamp
|
download_cursor イベントと download_delete_cursor イベントのスクリプト内で、最初のパラメータを TIMESTAMP カラムの値と比較します。
例
次の例は、Mobile Link Contact のサンプルから抜粋したものであり、タイムスタンプベースのダウンロードの実装方法を示します。
テーブル定義
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_cursor スクリプト
SELECT cust_id, Customer.name, Customer.rep_id FROM Customer KEY JOIN SalesRep WHERE Customer.last_modified >= {ml s.last_table_download} AND SalesRep.ml_username = {ml s.username} AND Customer.active = 1 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |