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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ管理 » Mobile Link サーバ・テクノロジの使用 » 同期の方法 » リモート・データベース間でのローの分割

 

切断分割

download_cursor スクリプトと download_delete_cursor スクリプトによって、同期で使用するテーブルごとに分割を制御します。このスクリプトでは、最後のダウンロードのタイムスタンプと、同期を呼び出すときに指定する Mobile Link ユーザ名という 2 つのパラメータを使用します。

♦  リモート・データベース間でテーブルを分割するには、次の手順に従います。
  1. テーブル定義でカラムを指定し、そこに統合データベースの同期ユーザ名を持たせます。このカラムをリモート・データベースにダウンロードする必要はありません。

  2. このカラムがスクリプトのパラメータと一致するように、download_cursor スクリプトと downloade_delete_cursor スクリプトの WHERE 句に条件文を指定します。

    スクリプト・パラメータは、スクリプト内で疑問符または名前付きパラメータによって表すことができます。次の例では、download_cursor スクリプトによって、テーブル Contact を emp_id で分割します。

    SELECT id, contact_name
    FROM Contact
    WHERE last_modified >= {ml s.last_table_download}
    AND emp_id = {ml s.username}

    download_cursor テーブル・イベントdownload_delete_cursor テーブル・イベントを参照してください。

CustDB サンプル・アプリケーション内のプライマリ・キー・プール・テーブルを使って、リモート・データベースごとに独自のプライマリ・キー値のセットを指定します。この方法は、プライマリ・キーの重複を避けるために使用します。詳細については、プライマリ・キー・プールの使用を参照してください。

この方法では、プライマリ・キー・プール・テーブルがリモート・データベース間で切断分割されるようにしてください。

キー・プール・テーブル ULCustomerIDPool にあるプライマリ・キー値は、各ユーザが顧客を追加するときに使用します。ULCustomerIDPool テーブルには次の 3 つのカラムがあります。

  • pool_cust_id   ULCustomer テーブルで使用するプライマリ・キー値。このカラムだけがリモート・データベースにダウンロードされます。

  • pool_emp_id   このプライマリ・キーの所有者である従業員。

  • last_modified   このテーブルは、last_modified カラムに基づいたタイムスタンプを使って管理されます。

    タイムスタンプの同期については、タイムスタンプベースのダウンロードを参照してください。

このテーブルの download_cursor スクリプトを次に示します。

SELECT pool_cust_id
FROM ULCustomerIDPool
WHERE last_modified >= {ml s.last_table_download}
 AND pool_emp_id = {ml s.username}

変数または名前付きパラメータを使用しない場合は、プレースホルダの "?" を含んだ、ジョインまたはサブ選択を使用できます。

Contact サンプルの顧客の同期Contact サンプルの顧客窓口の同期を参照してください。