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

SQL Anywhere 11.0.1 (中文) » MobiLink - 客户端管理 » 用于 MobiLink 的 SQL Anywhere 客户端 » SQL Anywhere 客户端的事件挂接

 

sp_hook_dbmlsync_validate_download_file

可以使用此挂接实现自定义逻辑,以决定下载文件是否可应用于远程数据库。仅在基于文件的下载被应用时才调用此挂接。

#hook_dict 表中各行

名称

说明

publication_n (in)

发布

正被同步的发布,其中 n 是一个整数。每个正在上载的发布都有一个 publication_n 条目。publication_n 和 generation number_n 中的 n 匹配。n 的编号从零开始。

MobiLink user (in)

MobiLink 用户名

您正在为其进行同步的 MobiLink 用户。

file last download time (in)

下载文件的上次下载时间。(下载文件中包含在其上次下载时间和更早一次下载时间之间发生更改的所有行。)

file next last download time (in)

下载文件的下一个上次下载时间。(下载文件中包含在其上次下载时间和更早一次下载时间之间发生更改的所有行。)

file creation time (in)

创建下载文件的时间。

file generation number_n (in)

数字

来自下载文件的世代号。每个 publication_n 条目对应一个 file generation number_n。publication_n 和 generation number_n 中的 n 匹配。n 的编号从零开始。

user data (in)

字符串

创建下载文件时由 dbmlsync -be 选项指定的字符串。

apply file (in|out)

True|False

如果为 true(缺省值),则仅当下载文件通过 dbmlsync 的其它校验检查时才应用下载文件。如果为 false,下载文件将不会应用于远程数据库。

check generation number (in|out)

True|False

如果为 true(缺省值),则 dbmlsync 校验世代号。如果下载文件的世代号与远程数据库的不匹配,则 dbmlsync 不应用下载文件。如果为 false,则 dbmlsync 不检查世代号。

setting generation number (in)

true | false

如果创建下载文件时使用了 -bg 选项,则为 True。如果使用了 -bg,则远程数据库中的世代号会根据下载文件更新,并且不会执行一般的世代号检查。

注释

您可以使用此存储过程实现自定义的检查,以确定是否能够应用下载文件。

如果要将文件中包含的世代号或时间戳与存储在远程数据库中的世代号或时间戳进行比较,您可以从 SYSSYNC 和 SYSPUBLICATION 系统视图中查询这些值。

当指定 -ba 选项时,将调用此挂接。在下载文件应用于远程数据库之前调用此挂接。

该挂接的操作将在完成后立即被提交。

另请参见
示例

下面的示例阻止应用不包含用户字符串 'sales manager data' 的下载文件。

CREATE PROCEDURE sp_hook_dbmlsync_validate_download_file ()
BEGIN
  IF NOT exists(SELECT * FROM #hook_dict
   WHERE name = 'User data' AND value='sales manager data')
  THEN
    UPDATE #hook_dict
            SET value = 'false' WHERE name = 'Apply file'; 
  END IF;
END;