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

SAP Sybase SQL Anywhere 16.0 » Mobile Link サーバ管理 » Mobile Link サーバテクノロジ » 同期の方法

 

タイムスタンプベースのダウンロードの実装

タイムスタンプによる方法は、効率よくダウンロードするために最も便利な一般的な手法です。この方法では、各ユーザが最後に同期を行った時間が追跡され、それ以降に変更されたローだけがダウンロードされます。

前提条件

この作業を実行するための前提条件はありません。

内容と備考

Mobile Link は、各 Mobile Link ユーザが最後にデータをダウンロードした日時を示す TIMESTAMP 値を管理します。この値は、「最終ダウンロード時刻」と呼ばれます。

 ♦ タスク
  1. テーブル用にタイムスタンプベースの同期を実装するには、統合データベースで、ローの最終修正時刻を保持する 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
  2. 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

 参照

スクリプトでの最終ダウンロード時刻
夏時間対応