该脚本可用于修改下一个同步的 last_download 时间戳。
在下表中,[说明] 部分提供 SQL 数据类型。如果您使用 Java 或 .NET 编写脚本,则应该使用相应的数据类型。请参见 SQL-Java 数据类型和 SQL-.NET 数据类型。
只有当未指定任何后续参数时,事件参数才是可选的。例如,如果要使用参数 2,您必须使用参数 1。
| 项 | 参数 | 说明 |
|---|---|---|
| 1 | download_timestamp | TIMESTAMP。这是一个 INOUT 参数。 |
| 2 | last_download_timestamp | TIMESTAMP |
| 3 | ml_username | VARCHAR(128) |
无。
该脚本可用于修改下一个同步的上次下载时间戳。如果定义了该脚本,则 MobiLink 同步服务器将调用该脚本并将下一个上次下载时间戳发送到远程数据库,该时间戳将作为下一个同步的一部分由远程数据库发送。
modify_next_last_download_timestamp事件的 SQL 脚本必须作为存储过程实现。MobiLink 同步服务器传入 download_timestamp 作为传递给存储过程的第一个参数,并用该存储过程传出的第一个值替换该时间戳。
可以使用该脚本修改 MobiLink 同步服务器发送给 MobiLink 客户端的下载时间戳。如果客户端为 dbmlsync,则该时间戳存储在 SYSSYNC 系统表中。
该脚本在下载用户表后于下载事务中执行。
下面是一个该脚本的应用示例。首先,为 Adaptive Server Anywhere 统一数据库创建一个过程:
CREATE PROCEDURE ModifyNextDownloadTimestamp(
inout download_timestamp TIMESTAMP ,
in last_download TIMESTAMP ,
in user_name VARCHAR(128) )
BEGIN
SELECT dateadd(hour, -1, download_timestamp )
INTO download_timestamp
END然后,在 Adaptive Server Anywhere 统一数据库中安装该脚本:
call ml_add_connection_script( 'modify_ts_test', 'modify_next_last_download_timestamp', 'call ModifyNextDownloadTimestamp ( ?, ?, ? )' )
下面的存储过程调用在同步脚本版本 ver1 时将名为 modifyNextDownloadTimestamp 的 Java 方法注册为 modify_next_last_download_timestamp 连接事件的脚本。
call ml_add_java_connection_script( 'ver1', 'modify_next_last_download_timestamp', 'ExamplePackage.ExampleClass.modifyNextDownloadTimestamp' )
下面是示例 Java 方法 modifyNextDownloadTimestamp。它将下载时间戳向后设置一小时。
public String modifyNextDownloadTimestamp(
Timestamp download_timestamp,
Timestamp last_download,
String user_name )
{ download_timestamp.setHours(
download_timestamp.getHours() -1 );
return( null ); }SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。