カラムレベルの競合検出のために、統合データベース内の同期テーブルからローをフェッチするデータスクリプトです。
SQL スクリプトでは、名前または疑問符を使用してイベントパラメーターを指定できます。疑問符の使用は推奨されなくなりました。名前付きパラメーターを使用することをおすすめします。1 つのスクリプト内で名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメーターは以下に示す順に指定する必要があり、後続のパラメーターが指定されていない場合のみ省略可能です (たとえば、パラメーター 2 を使用する場合は、パラメーター 1 を使用してください)。名前付きパラメーターを使用する場合は、パラメーターの任意のサブセットを任意の順に指定できます。
SQL スクリプトのパラメーター名 | 説明 | 順序 (SQL では非推奨) |
---|---|---|
s.remote_id |
VARCHAR(128)。Mobile Link リモート ID。名前付きパラメーターを使用している場合のみ、リモート ID を参照できます。 |
N/A |
s.username |
VARCHAR(128)。Mobile Link ユーザー名。このパラメーターはオプションです。 |
省略可 |
r. pk-column-1 |
必須。カラム名またはカラム番号で参照される最初のプライマリキーカラム値。 |
1 (username を参照する場合は 2) |
... | ... | ... |
r. pk-column-N |
必須。カラム名またはカラム番号で参照される最後のプライマリキーカラム値。 |
N (username を参照する場合は N+1) |
r. column-1 |
必須。カラム名またはカラム番号で参照される最初の非プライマリキーカラム値。 | N + 1 (username を参照する場合は N+2) |
... |
... |
... |
r. column-M |
必須。カラム名またはカラム番号で参照される最後の非プライマリキーカラム値。 | N + M (username を参照する場合は N+M+1) |
なし。
upload_fetch_column_conflict スクリプトは、upload_update イベントに対応します。
このスクリプトは、BLOB がないリモートテーブルに対してのみ定義できます。
このスクリプトを使用すると、Mobile Link サーバーは、最後の同期以降にリモートデータベースと統合データベースで同じカラムが更新された場合にのみローの競合を検出します。異なるユーザーは、同じカラムを更新しないかぎり、同じローを更新することができ、競合は発生しません。
たとえば、upload_fetch_column_conflict スクリプトを使用すると、一方のリモートユーザーが ULOrder テーブルの quant カラムを更新し、もう 1 人のリモートユーザーが同じローの notes ローを更新した場合に競合が検出されないようにできます。両方のユーザーが quant カラムを更新した場合のみ、競合が検出されます。
通常、競合検出は、upload_update スクリプトで一度に実行されるとより早く実行できます。 upload_update テーブルイベントを参照してください。
upload_fetch_column_conflict スクリプトを使用し、競合が検出されない場合、upload_update スクリプトに渡されるロー値は、upload_fetch_column_conflict スクリプトによってリモートデータベースのアップロードまたは現在の統合値から取得されます。リモートデータベースで更新されたカラムにはリモートデータベースの値が使用されます。それ以外の場合は現在の統合値が使用されます。つまり、リモートデータベースで更新されたカラムのみが統合データベースで更新されます。
リモートデータベースのテーブルごとに、upload_fetch または upload_fetch_column_conflict スクリプトを 1 つのみ指定できます。
以下のスクリプトが 1 つも定義されていない場合、このスクリプトは無視されます。upload_new_row_insert、upload_old_row_insert、resolve_conflict
このスクリプトは SQL で実装してください。 Java または .NET のローの処理については、ダイレクトローハンドリングを参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |