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 教程 » 教程:与 Microsoft Excel 同步

 

第 3 课:添加同步脚本

在本课中,您将为 SQL 行处理和直接行处理,将脚本添加到统一数据库中。

SQL 行处理

SQL 行处理允许您将远程数据与 MobiLink 统一数据库中的表同步。在本教程中,基于 SQL 的脚本定义:

  • 如何将从 MobiLink 客户端上载的数据应用到统一数据库。

  • 应从统一数据库下载哪些数据。

在本课中,您将为以下基于 SQL 的上载和下载事件编写同步脚本。

  • upload_insert   对插入远程客户端数据库的新订单如何应用到统一数据库进行定义。

  • download_cursor   对 MobiLink 统一数据库中更新的哪些订单应下载到远程客户端进行定义。

在此过程中,可以使用存储过程将同步脚本信息添加到 MobiLink 统一数据库。

♦  将基于 SQL 的脚本添加到 MobiLink 系统表
  1. 如果您尚未建立连接,则在 Interactive SQL 中连接到统一数据库。

    运行以下命令:

    dbisql -c "dsn=mlexcel_db"
  2. 使用 ml_add_table_script 存储过程为 upload_insert 和 download_cursor 事件添加基于 SQL 的表脚本。

    在 Interactive SQL 中运行以下命令。upload_insert 脚本将上载的 order_id、product_id、quantity 和 order_status 插入到 MobiLink 统一数据库。download_cursor 脚本使用基于时间戳的过滤将更新的行下载到远程客户端。

    CALL ml_add_table_script( 'default', 'RemoteOrders', 
       'upload_insert',
         'INSERT INTO RemoteOrders( order_id, product_id, quantity, order_status)
          VALUES( ?, ?, ?, ? )' );
       
    CALL ml_add_table_script( 'default', 'RemoteOrders',
       'download_cursor',
         'SELECT order_id, product_id, quantity, order_status
          FROM RemoteOrders WHERE last_modified >= ?');
    
    commit
直接行处理处理

在本教程中,您将使用直接行处理将特殊处理添加到基于 SQL 的同步系统中。在此过程中,您将注册与 handle_UploadData、handle_DownloadData 和 end_download 事件对应的方法名。在第 4 课:使用 MobiLink 直接行处理创建 Java 类中创建您自己的 Java 类。

♦  在 MobiLink 系统表中添加直接行处理的信息
  1. 在 Interactive SQL 中,连接到统一数据库。

    运行以下命令:

    dbisql -c "dsn=mlexcel_db"
  2. 注册用于 handle_UploadData 和 handle_DownloadData 同步事件的 Java 方法。

    在 Interactive SQL 中执行以下命令。

    CALL ml_add_java_connection_script( 'default', 
       'handle_UploadData',
         'MobiLinkOrders.GetUpload' );
       
    CALL ml_add_java_connection_script( 'default',
       'handle_DownloadData',
         'MobiLinkOrders.SetDownload' );
    
    commit

    Interactive SQL 分别注册用于 handle_UploadData 和 handle_DownloadData 事件的用户定义的 GetUpload 和 SetDownload 方法。

进一步阅读

有关使用基于 SQL 的事件将数据从远程客户端上载到 MobiLink 统一数据库的信息,请参见:

有关将数据上载到除统一数据库之外的其它数据源的信息,请参见处理直接上载

有关使用基于 SQL 的事件从 MobiLink 统一数据库下载数据的信息,请参见:

有关将数据下载到除统一数据库之外的其它数据源的信息,请参见处理直接下载

有关同步事件序列的信息,请参见MobiLink 事件概述

有关下载过滤的同步技术的信息,请参见基于时间戳的下载在远程数据库之间对行进行分区

有关管理脚本的信息,请参见添加和删除脚本

有关直接行处理的信息,请参见直接行处理