ローレベルの競合検出のために、統合データベース内の同期テーブルからローをフェッチするデータスクリプトです。
SQL スクリプトでは、名前または疑問符を使用してイベントパラメータを指定できます。疑問符の使用は推奨されなくなりました。名前付きパラメータを使用することをおすすめします。1 つのスクリプト内で名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメータは以下に示す順に指定する必要があり、後続のパラメータが指定されていない場合のみ省略可能です (たとえば、パラメータ 2 を使用する場合は、パラメータ 1 を使用してください)。名前付きパラメータを使用する場合は、パラメータの任意のサブセットを任意の順に指定できます。
SQL スクリプトのパラメータ名 | 説明 | 順序 (SQL では非推奨) |
---|---|---|
s.remote_id |
VARCHAR(128)。Mobile Link リモート ID。名前付きパラメータを使用している場合のみ、リモート ID を参照できます。 |
適用外 |
s.username |
VARCHAR(128)。Mobile Link ユーザ名。このパラメータは省略可能です。 |
省略可 |
s.script_version | VARCHAR(128)。Mobile Link サーバが現在の同期に使用しているスクリプトバージョン文字列をこのパラメータに渡すことを指定する、オプションの IN パラメータ。このパラメータの指定に疑問符を使用することはできません。 |
適用外 |
r. primary-key-1 |
必須。カラム名またはカラム番号で参照される最初のプライマリキーカラム値。 |
1 (username を参照する場合は 2) |
r. primary-key-2 |
必須。カラム名またはカラム番号で参照される 2 番目のプライマリキーカラム値。 |
2 |
... |
... |
... |
r. primary-key-N |
必須。カラム名またはカラム番号で参照される最後のプライマリキーカラム値。 |
N (username を参照する場合は N+1) |
なし。
upload_fetch スクリプトは、upload_update イベントに対応します。
結果セットのカラムは、このテーブルについてリモートデータベースからアップロードされるカラムの数や順序と一致します。返される値がアップロードされるローの更新前のイメージと一致しないと、競合が識別されます。
upload_fetch スクリプトでは READPAST テーブルヒントを使用しないでください。スクリプトが READPAST を使用してロックされたローをスキップした場合、同期論理は、そのローが削除されたものとみなします。これにより、定義したスクリプトに応じて、アップロードされた更新が無視されるか、または競合解決がトリガされます。更新の無視は、許容されない動作であることが多く、問題になる場合があります。実装している解決論理によっては、競合解決がトリガされても問題にならない場合があります。
リモートデータベースのテーブルごとに、upload_fetch または upload_fetch_column_conflict スクリプトを 1 つのみ指定できます。
このスクリプトは SQL で実装してください。 Java または .NET のローの処理については、ダイレクトローハンドリングを参照してください。
このスクリプトは、次のスクリプトがいずれも定義されていない場合、無視できます。upload_new_row_insert、upload_old_row_insert、および resolve_conflict。
次の SQL スクリプトは、Contact の例から抜粋したもので、%SQLANYSAMP16%\MobiLink\Contact\build_consol.sql にあります。リモートデータベースの Product テーブル内で更新されるローのアップロード時に発生する競合を識別するために使用されます。このスクリプトは、テーブル Product からローを選択しますが、統合データベースとリモートデータベースのスキーマによっては、2 つのテーブルの名前が一致しない場合があります。
CALL ml_add_table_script( 'ver1', 'Product', 'upload_fetch', 'SELECT id, name, size, quantity, unit_price FROM Product WHERE id={ml r.id}' ) |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |