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

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link イベント » 同期スクリプトの作成

 

簡単な同期スクリプト

Mobile Link には利用可能なイベントがたくさんありますが、その各イベントに対してスクリプトを作成する必要はありません。簡単な同期モデルの場合、必要なスクリプトはわずかです。

テーブルから各リモートデータベースにすべてのローをダウンロードすると、CustDB サンプルアプリケーションの ULProduct テーブルと同期します。この場合、リモートデータベースでの追加は許可されません。この簡単な形の同期は、2 つのスクリプトで実装できます。この例では、2 つのイベントだけに関連するスクリプトを使用します。

各同期中にダウンロードするローを制御する Mobile Link イベントは、download_cursor イベントと呼ばれます。カーソルスクリプトには、SELECT 文が必要です。Mobile Link サーバーは、このクエリを使用してカーソルを定義します。download_cursor スクリプトの場合、カーソルによって、リモートデータベース内の特定の 1 テーブルにダウンロードするローが選択されます。

CustDB サンプルアプリケーションには、このサンプルアプリケーションにある ULProduct テーブルに対応する download_cursor スクリプトが 1 つあり、次のクエリから構成されています。

SELECT prod_id, price, prod_name
FROM ULProduct

このクエリは結果セットを生成します。クライアントには、この結果セットを構成するローがダウンロードされます。この場合は、テーブルのすべてのローがダウンロードされます。

Mobile Link サーバーでは、ULProduct アプリケーションテーブルへローを送信することを認識しています。これは、このスクリプトが download_cursor イベントと ULProduct テーブルの両方に対応するような方法で統合データベースに格納されているからです。Sybase Central ではこのような対応付けが可能です。

ダウンロードするテーブルごとに download_cursor とともに必要な 2 つ目のイベントは、download_delete_cursor です。このイベントには、スクリプトが定義されている必要があります。この簡単な例では、削除のダウンロードを使用しないため、スクリプトは --{ml_ignore} と定義されています。

この例では、クエリによって同じ ULProduct という名前の統合テーブルからデータが選択されます。この名前が同じである必要はありません。クエリを書き換えることで、統合データベース内の任意の単一または複数のテーブルのデータを ULProduct アプリケーションテーブルにダウンロードするようにできます。

より複雑な同期スクリプトを作成することもできます。たとえば、最近修正されたローだけをダウンロードするスクリプトや、リモートデータベースごとに異なる情報を提供するスクリプトを作成できます。