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_cursor スクリプトを作成します。このスクリプトは、変更をダウンロードするリモート・データベースの各テーブルに 1 つ作成してください。他のスクリプトを使用するとダウンロード処理をカスタマイズできますが、それらは必要ありません。

  • 各 download_cursor スクリプトには、SELECT 文か、SELECT 文を含むプロシージャの呼び出しが必要です。Mobile Link サーバは、SELECT 文を使用して統合データベース内でカーソルを定義します。

  • スクリプトでは、対応するリモート・データベース内のテーブルのカラムに対応するすべてのカラムを選択します。統合データベース内のカラムは、対応するリモート・データベースのカラムとは異なる名前にできますが、互換性のある型にしてください。

次のスクリプトは、従業員情報を格納しているリモート・テーブルの download_cursor スクリプトとして機能します。Mobile Link サーバは、この SQL 文を使用してダウンロード・カーソルを定義します。このスクリプトによって、すべての従業員についての情報がダウンロードされます。

SELECT emp_id, emp_fname, emp_lname
FROM employee;

Mobile Link サーバは、スクリプトへ特定のパラメータを渡します。これらのパラメータを使用するには、名前付きパラメータを使用するか、SQL 文に疑問符を挿入できます。後者の場合、Mobile Link サーバは、パラメータ値に置き換えてから、統合データベースに対して文を実行します。次のスクリプトは、名前付きパラメータの使用方法を示しています。

CALL ml_add_table_script( 
   'Lab',
   'ULOrder',
   'download_cursor',
   'SELECT o.order_id, o.cust_id, o.prod_id, o.emp_id, o.disc, o.quant, o.notes, o.status
         FROM ULOrder o
         WHERE o.last_modified >= {ml s.last_table_download}
               AND o.emp_name = {ml s.username}' )
注意
  • ローの値は、単一のテーブルまたは複数のテーブル間のジョインから選択できます。

  • スクリプト自体にリモート・テーブルの名前を入れる必要はありません。リモート・テーブル名は、統合データベースのテーブル名と同じである必要はありません。リモート・テーブル名は、Mobile Link システム・テーブル ml_table 内のエントリによって示されます。Sybase Central では、リモート・テーブルがそのスクリプトとともにリストされます。

  • リモート・テーブルのローには、emp_id、emp_fname、emp_lname の値を入れてください。リモート・カラムは、名前が異なっていてもかまいませんが、上記の順にしてください。リモート・データベース内のカラムは、リファレンス・データベース内のカラムと同じ順になります。

  • カーソル・スクリプトでは、リモート・データベースで定義されている順序に従ってカラムを選択してください。統合データベースでカラム名やテーブル構造が異なる場合、リモート・データベース (リファレンス・データベースと同等) に対して正しい順序でカラムを選択してください。カラムは、SELECT 文内の順序に基づいてリモート・データベース内のカラムに割り当てられます。

  • Ultra Light アプリケーションを構築する場合は、Ultra Light アプリケーションの各テーブルに対して Ultra Light ジェネレータがサンプル・ダウンロード・スクリプトを作成します。そして、これらのサンプル・スクリプトをリファレンス・データベースに挿入します。サンプル・スクリプトでは、統合データベースにアプリケーションと同じテーブルが含まれていることを仮定しています。統合データベースの設計が異なる場合は、サンプル・スクリプトを修正してください。その場合でも、これらのスクリプトを基にすることができます。

  • download_cursor スクリプトには、すべてのカラムをリモート・データベースで定義されたときと同じ順序で含めてください。

参照