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

SAP Sybase SQL Anywhere 16.0 (中文) » MobiLink - 服务器管理 » MobiLink 事件 » 同步脚本编写

 

简单的同步脚本

MobiLink 提供了许多可以利用的事件,但是您不必为每个事件都提供脚本。在一个简单的同步模型中,您可能只需几个脚本。

通过将表中所有的行下载到每一个远程数据库,可以同步 CustDB 示例应用程序中的 ULProduct 表。在这种情况下,在远程数据库上不允许附加任何数据。您可使用两个脚本来实现这种简单的同步;在这种情况下,只有两个事件有脚本与其相关联。

控制在每个同步期间下载的行的 MobiLink 事件称为 download_cursor 事件。游标脚本必须包含 SELECT 语句。MobiLink 服务器将使用这些查询来定义游标。对于 download_cursor 脚本,游标将选择要下载到远程数据库中某个特定表的行。

在 CustDB 示例应用程序中,ULProduct 表有一个单独的 download_cursor 脚本,它包含以下查询:

SELECT prod_id, price, prod_name
FROM ULProduct

此查询生成一个结果集。组成此结果集的行将被下载到客户端。在这种情况下,该表中的所有行都将被下载。

因为此脚本与 download_cursor 事件和 ULProduct 表都关联(通过存储在统一数据库中),所以 MobiLink 服务器知道将这些行发送到 ULProduct 应用程序表中。通过 Sybase Central 可以进行这些关联。

所需的第二个事件是 download_delete_cursor,该事件必须有定义的脚本(以及 download_cursor)用于下载的每个表。此简单示例不使用下载删除,因此该脚本被定义为 --{ml_ignore}。

在本例中,查询将从别名为 ULProduct 的统一表中选择数据。名称可以不匹配。实际上,您可以通过重新编写该查询,将数据从统一数据库中的任何一个表或多个表的任意组合下载到 ULProduct 应用程序表。

可以编写更为复杂的同步脚本。例如,您可以编写一种仅下载最近修改过的行的脚本,也可编写一种可以为每个远程数据库提供不同信息的脚本。