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 技术简介 » 了解 MobiLink 同步 » 同步过程

 

MobiLink 事件

当 MobiLink 客户端发起同步时,将发生多个同步事件。在发生同步事件时,MobiLink 将查找与该事件匹配的脚本。该脚本包含一些说明,详细指出您要完成的操作。如果您已为事件定义了脚本且将脚本放入 MobiLink 系统表中,则该脚本会被调用。

MobiLink 脚本

每次发生事件时,MobiLink 服务器都将执行关联的脚本(如果您已创建了一个关联脚本)。如果没有脚本,将发生序列中的下一个事件。

注意

使用 [创建同步模型向导] 创建 MobiLink 应用程序时,会创建所有需要的 MobiLink 脚本。但是,您可以自定义缺省脚本,包括创建新脚本。

以下是表的典型上载脚本。第一个事件 upload_insert 触发 upload_insert 脚本的运行,该脚本将 emp_id 和 emp_name 列的所有更改插入到 emp 表中。upload_delete 和 upload_update 脚本将对 emp 表的删除和更新操作执行类似的功能。

事件 示例脚本内容
upload_insert
INSERT INTO
emp (emp_id,emp_name)
VALUES {ml r.emp_id}, {ml r.emp_name}
upload_delete
DELETE FROM emp
WHERE emp_id = {ml r.emp_id}
upload_update
UPDATE emp
SET emp_name = {ml r.emp_name}
WHERE emp_id = {ml r.emp_id}

下载脚本使用游标。以下是 download_cursor 脚本的示例:

SELECT order_id, cust_id
FROM ULOrder 
WHERE last_modified >= {ml s.last_table_download}
AND emp_name = {ml r.emp_id}

有关事件和脚本的详细信息,请参见:

您可以使用 SQL、Java 或 .NET 编写脚本

可以使用统一数据库的本地 SQL 方言或使用 Java 或 .NET 同步逻辑编写脚本。Java 和 .NET 同步逻辑可用于编写由 MobiLink 服务器激活的代码,以连接到数据库、操纵变量、直接操纵上载行操作,或者向下载添加行操作。目前有面向 Java 的 MobiLink 服务器 API 和面向 .NET 的 MobiLink 服务器 API,它们提供能满足同步需求的类和方法。

请参见用于编写服务器端同步逻辑的选项

有关 RDBMS 相关脚本的信息,请参见MobiLink 统一数据库

存储脚本

SQL 脚本存储在统一数据库的 MobiLink 系统表中。对于使用 MobiLink 服务器 API 编写的脚本,您可将完全限定的方法名作为脚本存储。可以使用多种方法将脚本添加到统一数据库:

  • 如果使用 [创建同步模型向导],则在部署项目时会将脚本存储在 MobiLink 系统表中。

  • 可以使用建立统一数据库时安装的存储过程,手工向系统表添加脚本。

  • 可以使用 Sybase Central 手工向系统表添加脚本。

请参见添加和删除脚本