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_download_com_error(不建议使用)

您可以使用此存储过程添加自定义操作,以便在读取 MobiLink 服务器发送的下载过程中发生通信错误时执行。

不建议使用此挂接。请参见处理事件挂接过程中的错误和警告

#hook_dict 表中各行

名称

说明

table name (in)

表名

错误发生时正在对其应用操作的表。如果 dbmlsync 无法识别该表,则该值为空字符串。

publication_n (in)

发布

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

MobiLink user (in)

MobiLink 用户名

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

script version (in)

脚本版本名称

将用于同步的 MobiLink 脚本版本。

注释

如果以该名称命名的过程存在,那么它将在同步过程的下载阶段检测到通信错误时被调用。然后终止下载。

此过程应在单独的连接上执行,以便记录故障。否则记录操作将与同步操作一同被回退。如果 dbmlsync 无法建立单独的连接,则不调用该过程。

缺省情况下,在 Windows Mobile 设备上,同步表以独占模式被锁定,这意味着如果此挂接需要访问任何同步表,它就不能成功执行。如果它需要访问同步表而您将 dbmlsync 扩展选项 LockTables 设置为 EXCLUSIVE,则它也无法执行。请参见LockTables (lt) 扩展选项

该过程的操作将在执行后立即被提交。

另请参见
示例

假定您使用下面的表记录通信错误。

CREATE TABLE SyncLogComErrorTable
(
   " user_name "  VARCHAR(255) NOT NULL ,
   " event_time "   TIMESTAMP NOT NULL ,
);

以下示例记录当读取由 MobiLink 服务器发送的下载过程中发生通信错误时的 MobiLink 用户和当前时间戳。信息存储在远程数据库的 SyncLogComErrorTable 表中。

CREATE PROCEDURE sp_hook_dbmlsync_download_com_error ()
BEGIN
 INSERT INTO SyncLogComErrorTable (user_name, event_time)
  SELECT #hook_dict.value, CURRENT TIMESTAMP
  FROM #hook_dict
  WHERE name = 'MobiLink user';
END;