该脚本可用于修改当前同步的 last_download 时间戳。
在下表中,[说明] 部分提供 SQL 数据类型。如果您使用 Java 或 .NET 编写脚本,则应该使用相应的数据类型。请参见 SQL-Java 数据类型和 SQL-.NET 数据类型。
只有当未指定任何后续参数时,事件参数才是可选的。如果要使用参数 2,您必须使用参数 1。
| 项 | 参数 | 说明 |
|---|---|---|
| 1 | last_download_timestamp | TIMESTAMP。这是一个 INOUT 参数。 |
| 2 | ml_username | VARCHAR(128) |
无。
该脚本可用于修改当前同步的上次下载时间戳。如果定义了该脚本,则 MobiLink 同步服务器将调用该脚本并使用修改过的 last_download 时间戳作为传递到下载脚本的 last_download 时间戳。
modify_last_download_timestamp 事件的 SQL 脚本必须作为存储过程执行。MobiLink 同步服务器传入 last_download_timestamp 作为传递给存储过程的第一个参数,并用该存储过程传出的第一个值替换该时间戳。
例如,如果定义了以下 download_cursor 脚本,MobiLink 同步服务器将用执行该 SELECT 语句前修改的上次下载时间戳的值替换 ?:
SELECT pk, c2, c3 FROM test WHERE last_modified >= ?
该脚本紧接 prepare_for_download 脚本之前在同一事务中执行。
首先,为 Adaptive Server Anywhere 统一数据库创建一个过程。在 Oracle 中:
CREATE PROCEDURE modify_nldts(
nldts OUT DATE,
ldts IN DATE,
user_name IN VARCHAR )
AS
BEGIN
-- N is max replication latency in consolidated cluster
nldts := nldts - N;
END;在 Adaptive Server Anywhere、Adaptive Server Enterprise 或 Microsoft SQL Server 中:
CREATE PROCEDURE modify_nldts
@nldts DATETIME OUTPUT,
@ldts DATETIME,
@t_name VARCHAR( 128 )
AS
BEGIN
-- N is max replication latency in consolidated cluster
SELECT @nldts = @nldts - N
END然后,将脚本安装到您的统一数据库中。对于 Adaptive Server Anywhere 统一数据库:
ml_add_connection_script(
'my_version',
'modify_last_download_timestamp',
'{call modify_nldts(?,?,?)}' )下面的存储过程调用在同步脚本版本 ver1 时将名为 modifyLastDownloadTimestamp 的 Java 方法注册为 modify_last_download_timestamp 连接事件的脚本。
call ml_add_java_connection_script( 'ver1', 'modify_last_download_timestamp', 'ExamplePackage.ExampleClass.modifyLastDownloadTimestamp' )
下面是示例 Java 方法 modifyLastDownloadTimestamp。它输出当前新的时间戳并修改传入的时间戳。
public String modifyLastDownloadTimestamp(
Timestamp last_download_time,
String user_name )
{ java.lang.System.out.println( "old date: " +
last_download_time.toString() );
last_download_time.setDate(
last_download_time.getDate() -1 );
java.lang.System.out.println( "new date: " +
last_download_time.toString() );
return( null ); }SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。