In this lesson you add scripts to your consolidated database for SQL row handling and direct row handling.
SQL row handling allows you to synchronize remote data with tables in your MobiLink consolidated database. SQL-based scripts define:
How data that is uploaded from a MobiLink client is to be applied to the consolidated database.
What data should be downloaded from the consolidated database.
In this lesson, you write synchronization scripts for the following SQL-based upload and download events.
upload_insert This event defines how new orders inserted in a client database should be applied to the consolidated database.
download_cursor This event defines the orders that should be downloaded to remote clients.
download_delete_cursor This event is required when using synchronization scripts that are not upload-only. You set the MobiLink server to ignore this event for the purpose of this tutorial.
In this procedure, you add synchronization script information to your MobiLink consolidated database using stored procedures.
Connect to your consolidated database in Interactive SQL if you are not already connected.
Run the following command:
dbisql -c "dsn=mldirect_db" |
Use the ml_add_table_script stored procedure to add SQL-based table scripts for the upload_insert, download_cursor and download_delete_cursor events.
Run the following SQL script in Interactive SQL. The upload_insert script inserts the uploaded order_id, product_id, quantity, and order_status into the MobiLink consolidated database. The download_cursor script uses timestamp-based filtering to download updated rows to remote clients.
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 >= ?'); CALL ml_add_table_script( 'default', 'RemoteOrders', 'download_delete_cursor', '--{ml_ignore}'); COMMIT |
In this tutorial, you use direct row handling to add special processing to a SQL-based synchronization system. In this procedure you register method names corresponding to the handle_UploadData, handle_DownloadData, end_download, download_cursor, and download_delete_cursor events. You create your own Java or .NET class in Lesson 4: Create a Java or .NET class for MobiLink direct row handling.
Connect to your consolidated database in Interactive SQL if you are not already connected.
Run the following command:
dbisql -c "dsn=mldirect_db" |
Register a Java or .NET method for the end_download event.
You use this method to free memory resources when the MobiLink server runs the end_download connection event.
For Java, run the following SQL script in Interactive SQL:
CALL ml_add_java_connection_script( 'default', 'end_download', 'MobiLinkOrders.EndDownload' ); |
For .NET, run the following SQL script in Interactive SQL:
CALL ml_add_dnet_connection_script( 'default', 'end_download', 'MobiLinkOrders.EndDownload' ); |
Interactive SQL registers the user-defined EndDownload method for the end_download event.
Register Java or .NET methods for the handle_UploadData and handle_DownloadData events.
For Java, run the following SQL script in Interactive SQL:
CALL ml_add_java_connection_script( 'default', 'handle_UploadData', 'MobiLinkOrders.GetUpload' ); CALL ml_add_java_connection_script( 'default', 'handle_DownloadData', 'MobiLinkOrders.SetDownload' ); |
For .NET, run the following SQL script in Interactive SQL:
CALL ml_add_dnet_connection_script( 'default', 'handle_UploadData', 'MobiLinkOrders.GetUpload' ); CALL ml_add_dnet_connection_script( 'default', 'handle_DownloadData', 'MobiLinkOrders.SetDownload' ); |
Interactive SQL registers the user-defined GetUpload and SetDownload methods for the handle_UploadData and handle_DownloadData events, respectively. You create these methods in an upcoming lesson.
Register download_cursor and download_delete_cursor events.
Run the following SQL script in Interactive SQL:
CALL ml_add_table_script( 'default', 'OrderComments', 'download_cursor', '--{ml_ignore}'); CALL ml_add_table_script( 'default', 'OrderComments', 'download_delete_cursor', '--{ml_ignore}'); |
The download_cursor and download_delete_cursor events must be registered for the OrderComments table when using scripts because the synchronization is bi-directional and not upload-only. See Required scripts.
Commit your changes.
Run the following SQL script in Interactive SQL:
COMMIT; |
You can now close Interactive SQL.
For information about using SQL-based events to upload data from remote clients to a MobiLink consolidated database, see:
For information about uploading data to data sources other than consolidated databases, see Handling direct uploads.
For information about using SQL-based events to download data from a MobiLink consolidated database, see:
For information about downloading data to data sources other than consolidated databases, see Handling direct downloads.
For information about the synchronization event sequence, see Overview of MobiLink events.
For information about synchronization techniques for download filtering, see Timestamp-based downloads and Partitioning rows among remote databases.
For information about managing scripts, see Adding and deleting scripts.
For information about direct row handling, see Direct row handling.
Discuss this page in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |