このストアドプロシージャを使用して、各テーブルがダウンロードされた直後にカスタムアクションを追加します。
名前 | 値 | 説明 |
---|---|---|
table name (in) |
テーブル名 |
操作が直前に適用されたテーブル。 |
delete count (in) |
ローの数 |
ダウンロードによってこのテーブルから削除されたローの数。 |
upsert count (in) |
ローの数 |
ダウンロードによってこのテーブルで更新または挿入されたローの数。 |
publication_n (in) |
パブリケーション |
推奨されていません。代わりに subscription_n を使用します。同期されているパブリケーション (n は整数)。同期されるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザ名 |
同期対象となる Mobile Link ユーザ |
script version (in) |
スクリプトバージョン名 |
同期に使用される Mobile Link スクリプトバージョン。 |
subscription_n (in) | サブスクリプション名 | 同期されているサブスクリプションの名前 (n は整数)。これは、同期される各サブスクリプションの subscription_n エントリです。n の番号は 0 から始まります。 |
この名前のプロシージャが存在する場合、ダウンロードでの操作がすべてテーブルに適用された直後に呼び出されます。
ダウンロードがコミットまたはロールバックされると、このプロシージャのアクションがコミットまたはロールバックされます。
MANAGE REPLICATION システム権限を持つユーザが作成できるフックプロシージャ。ただし、フックによる情報のやり取りに使用される #hook_dict table にフックがアクセスできることを確認するには、フックが次のいずれかの要件を満たしている必要があります。
SELECT ANY TABLE および UPDATE ANY TABLE システム権限を持つユーザが所有します。
CREATE PROCEDURE 文の SQL SECURITY INVOKER 句を使用して定義されます。
次のテーブルを使用して、リモートデータベース上の同期イベントのログを取ります。
CREATE TABLE SyncLog ( "event_id" integer NOT NULL DEFAULT autoincrement , "event_time" timestamp NULL, "event_name" varchar(128) NOT NULL , "subs" varchar(1024) NULL , PRIMARY KEY ("event_id") ) |
次の文は、同期ごとに各テーブルのダウンロードの終わりにログを取ります。
CREATE PROCEDURE sp_hook_dbmlsync_download_table_end () BEGIN DECLARE subs_list VARCHAR(1024); -- build a list of subscriptions being synchronized SELECT LIST(value) INTO subs_list FROM #hook_dict WHERE name LIKE 'subscription_%'; -- log the event INSERT INTO SyncLog(event_time, event_name, subs) VALUES( CURRENT TIMESTAMP, 'sp_hook_dbmlsync_download_table_end, subs_list ); END |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |