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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クライアント管理 » Mobile Link 用 SQL Anywhere クライアント » SQL Anywhere クライアントのイベント・フック

 

sp_hook_dbmlsync_begin

このストアド・プロシージャを使用して、同期処理の開始時にカスタム・アクションを追加します。

#hook_dict テーブルのロー

名前

説明

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_begin ()
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_begin',#hook_dict.value,pubs_list,CURRENT TIMESTAMP
     FROM #hook_dict
     WHERE name='MobiLink user'; 
END