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

SQL Anywhere 12.0.0 (中文) » MobiLink - 入门 » MobiLink 教程 » 教程:MobiLink 简介

 

第 2 课:添加同步脚本

可以使用 Sybase Central 查看、编写和修改同步脚本。在本节中,您将编写以下同步脚本:

  • upload_insert   此事件定义将新客户端数据应用到统一数据库的方法。

  • download_cursor   此事件对应下载到远程客户端的数据进行定义。

  • download_delete_cursor   在使用非仅上载的同步脚本时,需要使用此事件。对于本教程,需将 MobiLink 服务器设置为忽略此事件。

通过创建新的 MobiLink 项目连接到统一数据库。

 ♦  创建新的 MobiLink 项目
  1. 选择 [开始] » [程序] » [SQL Anywhere 12] » [管理工具] » [Sybase Central]。

  2. 从 [工具] 菜单中,选择 [MobiLink 12] » [新建项目]。

  3. 在 [名称] 字段中键入 mlmon_project

  4. 在 [位置] 字段中,键入 C:\mlmon,然后单击 [下一步]。

  5. 选中 [将统一数据库添加到项目] 选项。

  6. 在 [数据库显示名称] 字段中键入 mlmon_db

  7. 单击 [编辑]。将出现 [连接到通用 ODBC 数据库] 窗口。

  8. 在 [用户 ID] 字段键入 DBA

  9. 在 [口令] 字段中键入 sql

  10. 在 [ODBC 数据源名称] 字段中,单击 [浏览],然后选择 mlmon_db

  11. 单击 [确定],然后单击 [保存]。

  12. 选中 [记住口令] 选项,然后单击 [完成]。

  13. 单击 [确定]。

每个脚本都属于指定的脚本版本。在添加脚本之前必须将脚本版本添加到统一数据库。

 ♦  添加脚本版本
  1. 从 [视图] 菜单中,选择 [文件夹]。

  2. 在 [MobiLink 12] 下的 Sybase Central 左窗格中,依次展开 mlmon_project、[统一数据库],然后选择 mlmon_db - DBA

  3. 右击 [版本],并选择 [新建] » [版本]。

  4. 在 [您要给新脚本版本指定什么名称] 字段中键入 ver1

  5. 单击 [完成]。

必须将 Product 表注册为同步表,才能将脚本添加到该表中。

 ♦  将已同步表添加到统一数据库
  1. 从 [视图] 菜单中,选择 [文件夹]。

  2. 在 [MobiLink 12] 下的 Sybase Central 左窗格中,依次展开 mlmon_project、[统一数据库],然后选择 mlmon_db - DBA

  3. 右击 [同步表],并选择 [新建] » [同步表]。

  4. 单击 [在统一数据库中选择与远程表相同名称的表] 选项。

  5. 在 [哪个用户拥有要同步的表] 列表中,单击 [DBA]。

  6. 在 [您要同步哪个表] 列表中,单击 [Product]。

  7. 单击 [完成]。

为统一数据库的每个上载和下载都添加一个新表脚本。

 ♦  添加 Product 表的表脚本
  1. 从 [视图] 菜单中,选择 [文件夹]。

  2. 在 [MobiLink 12] 下的 Sybase Central 左窗格中,依次展开 [mlmon_project]、[统一数据库]、[mlmon_db] 和 [同步表]。

  3. 右击 [Product],并选择 [新建] » [表脚本]。

  4. 在 [您要为哪个版本创建表脚本] 列表中,单击 ver1

  5. 在 [哪个事件应导致执行表脚本] 列表中,单击 [upload_insert],然后单击 [下一步]。

  6. 单击 [完成]。

  7. 在 Sybase Central 的右窗格中,对 upload_insert 事件使用以下 SQL 脚本:

    INSERT INTO Product( name, quantity, last_modified )
        VALUES( {ml r.name}, {ml r.quantity}, now() )

    upload_insert 事件决定应如何将插入到远程数据库的数据应用于统一数据库。有关 upload_insert 的详细信息,请参见upload_insert 表事件

  8. 选择 [文件] » [保存]。

  9. 重复执行第 2 至 5 步,在第 4 步中指定 download_cursor 事件(而非 upload_insert 事件)。

  10. 在 Sybase Central 的右窗格中,对 download_cursor 事件使用以下 SQL 脚本:

    SELECT name, quantity FROM Product
        WHERE last_modified >= {ml s.last_table_download}

    download_cursor 脚本定义一个用于选择在远程数据库中下载和插入或更新的统一数据库行的游标。有关 download_cursor 的详细信息,请参见download_cursor 表事件

  11. 选择 [文件] » [保存]。

  12. 重复执行第 2 至 5 步,在第 4 步中指定 download_delete_cursor 事件(而非 upload_insert 事件)。

  13. 在 Sybase Central 的右窗格中,对 download_delete_cursor 事件使用以下 SQL 脚本:

    --{ml_ignore}
  14. 选择 [文件] » [保存]。

 进一步阅读