このストアド・プロシージャを使用して、同期処理のダウンロード処理終了時にカスタム・アクションを追加します。
名前 |
値 |
説明 |
---|---|---|
publication_n (in) |
パブリケーション名 |
同期されているパブリケーション (n は整数)。アップロードされるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザ名 |
同期対象となる Mobile Link ユーザ。 |
script version (in) |
スクリプト・バージョン名 |
同期に使用される Mobile Link スクリプト・バージョン。 |
この名前のプロシージャが存在する場合、同期処理のダウンロード処理終了時に呼び出されます。
ダウンロードがコミットまたはロールバックされると、このプロシージャのアクションがコミットまたはロールバックされます。
次のテーブルを使用して、リモート・データベース上の同期イベントのログを取るとします。
CREATE TABLE SyncLog ( "event_id" INTEGER NOT NULL DEFAULT AUTOINCREMENT , "event_name" VARCHAR(128) NOT NULL , "ml_user" VARCHAR(128) NULL , "event_time" TIMESTAMP NULL, "table_name" VARCHAR(128) NULL , "upsert_count" VARCHAR(128) NULL , "delete_count" VARCHAR(128) NULL , "exit_code" INTEGER NULL , "status_retval" VARCHAR(128) NULL , "pubs" VARCHAR(128) NULL , "sync_descr " VARCHAR(128) NULL , PRIMARY KEY ("event_id"), ) |
次に、パブリケーションのリストをコンパイルする例を示します。同期のダウンロード処理の終りにパブリケーション・リストなどの同期情報のログを取ります。
CREATE PROCEDURE sp_hook_dbmlsync_download_end () BEGIN DECLARE pubs_list VARCHAR(1024); DECLARE temp_str VARCHAR(128); DECLARE qry VARCHAR(128); -- insert publication list into pubs_list SELECT LIST(value) INTO pubs_list FROM #hook_dict WHERE name LIKE 'publication_%'; -- log publication and synchronization information INSERT INTO SyncLog(event_name,ml_user,pubs,event_time) SELECT 'dbmlsync_download_end',#hook_dict.value, pubs_list,CURRENT TIMESTAMP FROM #hook_dict WHERE name='MobiLink user'; END |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |