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 テクノロジの概要 » Mobile Link のモデル » モデル・モード

 

ダウンロード・サブセットの変更

各 Mobile Link リモート・データベースでは、統合データベースに格納されているデータのサブセットを同期できます。テーブルごとにダウンロード・サブセットをカスタマイズできます。

ダウンロード・サブセットのオプションは、次のとおりです。

  • ユーザ   このオプションを選択すると、Mobile Link ユーザ名によってデータが分割され、登録済みの Mobile Link ユーザごとに異なるデータがダウンロードされます。

    このオプションを使用するには、Mobile Link ユーザ名が統合データベース上に存在する必要があります。Mobile Link ユーザ名は展開時に選択するため、統合データベースの既存の値と一致する名前を選択できます。(Mobile Link ユーザ名用に使用するカラムは、ユーザ名として使用する値を格納できるタイプである必要があります。)サブセットのテーブルとは異なるテーブルに Mobile Link ユーザ名がある場合は、そのテーブルにジョインする必要があります。

  • [リモート]   このオプションを選択すると、リモート ID によってデータが分割され、リモート・データベースごとに異なるデータがダウンロードされます。

    このオプションを使用するには、リモート ID が統合データベースにあることが必要です。リモート ID はデフォルトでは GUID として作成されますが、統合データベースの既存の値に一致するリモート ID を設定できます。(リモート ID 用に使用するカラムは、リモート ID として使用する値を格納できるタイプである必要があります。)サブセットのテーブルとは異なるテーブルにリモート ID がある場合は、そのテーブルにジョインする必要があります。

  • [カスタム]   ダウンロードするローを指定する SQL 式を使用するには、このオプションを選択します。各同期は、SQL 式が true のローのみをダウンロードします。この SQL Anywhere 式は、download_cursor スクリプトで使用される式と同じです。この式は、一部が自動的に作成されます。

♦  ダウンロード・サブセットを変更するには、次の手順に従います。
  1. モデル・モードで [マッピング] タブを開きます。

  2. [テーブル・マッピング] ウィンドウ枠で、リモート・テーブルを選択します。

  3. [サブセットのダウンロード] ドロップダウン・リストで、[なし][ユーザ][リモート][カスタム] のいずれかのダウンロード・サブセットを選択します。

  4. [ユーザ][リモート][カスタム] を選択する場合は、下ウィンドウ枠で [サブセットのダウンロード] タブを開きます。

  5. [ユーザ] または [リモート] を選択した場合は、[サブセットのダウンロード] タブを使用して、Mobile Link ユーザ名またはリモート ID が格納された統合テーブル内のカラムを識別したり、テーブルのジョインを入力して、Mobile Link ユーザ名またはリモート ID を取得することができます。

  6. [カスタム] を選択すると、[サブセットのダウンロード] タブに 2 つのテキスト・ボックスが表示されます。このテキスト・ボックスには download_cursor スクリプトの作成に使用する情報を追加できます。download_cursor をすべて自分で作成する必要はありません。ダウンロード・サブセットのジョインやその他の制限を指定するために追加情報を指定する必要があるだけです。

    • download_cursor にその他のテーブルへのジョインが必要な場合は、最初のテキスト・ボックス ([ダウンロード・カーソルの FROM 句に追加するテーブル]) にテーブル名を入力します。ジョインで複数のテーブルが必要な場合は、カンマで区切ります。

    • 2 つ目のテキスト・ボックス ([ダウンロード・カーソルの WHERE 句で使用する SQL 式]) に、ジョインとダウンロード・サブセットを指定する WHERE 条件を入力します。

参照
例 (ユーザ)

たとえば、CustDB の ULOrder テーブルは、ユーザ間で共有できます。デフォルトで、注文は、作成した従業員に割り当てられています。しかし、別の従業員によって作成された注文を確認したい場合があります。たとえば、マネージャは、部署の従業員が作成したすべての注文を確認する必要があるかもしれません。CustDB データベースでは、このような状況に備えるために、ULEmpCust テーブルを使用します。これにより、顧客を従業員に割り当てることができます。マネージャは、ある従業員と顧客の関係における注文をダウンロードします。

どのように処理されたか確認するには、まずダウンロード・サブセットなしで、ULOrder の download_cursor スクリプトを表示します。次に、[マッピング] タブで ULEmpCust テーブルを選択します。[ダウンロード・タイプ] カラムで [タイムスタンプ]、[サブセットのダウンロード] カラムで [なし] をそれぞれ選択します。テーブルを右クリックし、[イベントに移動] を選択します。テーブルの download_cursor は、次のようになります。

SELECT "DBA"."ULOrder"."order_id",
 "DBA"."ULOrder"."cust_id",
 "DBA"."ULOrder"."prod_id",
 "DBA"."ULOrder"."emp_id",
 "DBA"."ULOrder"."disc",
 "DBA"."ULOrder"."quant",
 "DBA"."ULOrder"."notes",
 "DBA"."ULOrder"."status"
FROM "DBA"."ULOrder"
WHERE "DBA"."ULOrder"."last_modified" >= {ml s.last_table_download}

[マッピング] タブに戻ります。ULOrder の [サブセットのダウンロード] を [ユーザ] に変更します。下ウィンドウ枠で [サブセットのダウンロード] タブを開きます。[ジョインされている関係テーブル内のカラムを使用する] を選択します。ジョインするテーブルで、ULEmpCust を選択します。一致させるカラムで、emp_id を選択します。ジョイン条件には emp_id = emp_id を選択します。

一番上のウィンドウ枠でテーブルを右クリックし、[イベントに移動] を選択します。テーブルの download_cursor は、次のようになります。

SELECT "DBA"."ULOrder"."order_id",
   "DBA"."ULOrder"."cust_id",
   "DBA"."ULOrder"."prod_id",
   "DBA"."ULOrder"."emp_id",
   "DBA"."ULOrder"."disc",
   "DBA"."ULOrder"."quant",
   "DBA"."ULOrder"."notes",
   "DBA"."ULOrder"."status"
FROM "DBA"."ULOrder", "DBA"."ULEmpCust"
WHERE "DBA"."ULOrder"."last_modified" >= {ml s.last_table_download} 
AND "DBA"."ULOrder"."emp_id" = "DBA"."ULEmpCust"."emp_id" 
AND "DBA"."ULEmpCust"."emp_id" = {ml s.username}
例 (カスタム)

たとえば、Mobile Link ユーザによる Customer というテーブルのダウンロードをサブセットし、active=1 である場合だけローをダウンロードするとします。Mobile Link ユーザ名はサブセットのテーブルに存在しないため、ユーザ名が含まれる SalesRep というテーブルへのジョインを作成する必要があります。

[マッピング] タブで、Customer テーブルの [ダウンロード・タイプ][タイムスタンプ][サブセットのダウンロード][カスタム] をそれぞれ選択します。下ウィンドウ枠で [サブセットのダウンロード] タブを開きます。最初のテキスト・ボックス ([ダウンロード・カーソルの FROM 句に追加するテーブル]) に、次のように入力します。

SalesRep

2 つ目のテキスト・ボックス ([ダウンロード・カーソルの WHERE 句で使用する SQL 式]) に、次のように入力します。

SalesRep.ml_username = {ml s.username} 
   AND Customer.active = 1
   AND Customer.cust_id = SalesRep.cust_id

一番上のウィンドウ枠でテーブルを右クリックし、[イベントに移動] を選択します。テーブルの download_cursor は、次のようになります。

SELECT "DBA"."Customer"."cust_id",
 "DBA"."Customer"."cust_name"
FROM "DBA"."Customer", SalesRep
WHERE "DBA"."Customer"."last_modified" >= {ml s.last_table_download}
 AND SalesRep.ml_username = {ml s.username}
 AND Customer.active = 1
 AND Customer.cust_id = SalesRep.cust_id

WHERE 句の最後の行により、Customer から SalesRep へのキー・ジョインが作成されます。