在本课中,您将为 SQL 行处理和直接行处理,将脚本添加到统一数据库中。
SQL 行处理允许您将远程数据与 MobiLink 统一数据库中的表同步。在本教程中,基于 SQL 的脚本定义:
如何将从 MobiLink 客户端上载的数据应用到统一数据库。
应从统一数据库下载哪些数据。
在本课中,您将为以下基于 SQL 的上载和下载事件编写同步脚本。
upload_insert 对插入远程客户端数据库的新订单如何应用到统一数据库进行定义。
download_cursor 对 MobiLink 统一数据库中更新的哪些订单应下载到远程客户端进行定义。
在此过程中,可以使用存储过程将同步脚本信息添加到 MobiLink 统一数据库。
如果您尚未建立连接,则在 Interactive SQL 中连接到统一数据库。
运行以下命令:
dbisql -c "dsn=mlexcel_db" |
使用 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 类。
在 Interactive SQL 中,连接到统一数据库。
运行以下命令:
dbisql -c "dsn=mlexcel_db" |
注册用于 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 事件概述。
有关下载过滤的同步技术的信息,请参见基于时间戳的下载和在远程数据库之间对行进行分区。
有关管理脚本的信息,请参见添加和删除脚本。
有关直接行处理的信息,请参见直接行处理。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |