このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:Excel ワークシートの設定を参照してください。
このレッスンでは、SQL ローハンドリングとダイレクトローハンドリング用のスクリプトを統合データベースに追加します。
SQL ローハンドリングを使用すると、リモートデータを、Mobile Link 統合データベース内のテーブルと同期できます。SQL ベースのスクリプトでは、次の情報を定義します。
Mobile Link クライアントからアップロードするデータを統合データベースに適用する方法。
統合データベースからダウンロードするデータ。
このレッスンでは、次の SQL ベースのアップロードイベントとダウンロードイベント用の同期スクリプトを作成します。
upload_insert このイベントは、クライアントデータベースに挿入された新しい注文を統合データベースに適用する方法を定義します。
download_cursor このイベントは、リモートクライアントにダウンロードする注文を定義します。
download_delete_cursor このイベントは、アップロード専用の同期スクリプトを使用する場合に必要です。このチュートリアルでは、このイベントを無視するように Mobile Link サーバーを設定します。
ダイレクトローハンドリングを使用して特別な処理を SQL ベースの同期システムに追加します。この手順では、handle_UploadData、handle_DownloadData、download_cursor、download_delete_cursor の各イベントに対応するメソッド名を登録します。独自の Java クラスをレッスンの後半で作成します。
統合データベースに接続していない場合は、Interactive SQL から接続します。
次のコマンドを実行します。
dbisql -c "DSN=mlexcel_db" |
ml_add_table_script ストアドプロシージャーを使用して、upload_insert、download_cursor、download_delete_cursor の各イベント用の SQL ベースのテーブルスクリプトを追加します。
Interactive SQL で次の SQL 文を実行します。upload_insert のスクリプトでは、アップロードされた order_id、product_id、quantity、order_status を Mobile Link 統合データベースに挿入します。download_cursor のスクリプトでは、タイムスタンプベースのフィルターを使用して、更新されたローをリモートクライアントにダウンロードします。
CALL ml_add_table_script( 'default', 'RemoteOrders', 'upload_insert', 'INSERT INTO RemoteOrders( order_id, product_id, quantity, order_status) VALUES( {ml r.order_id}, {ml r.product_id}, {ml r.quantity}, {ml r.order_status} )' ); CALL ml_add_table_script( 'default', 'RemoteOrders', 'download_cursor', 'SELECT order_id, product_id, quantity, order_status FROM RemoteOrders WHERE last_modified >= {ml s.last_table_download}'); CALL ml_add_table_script( 'default', 'RemoteOrders', 'download_delete_cursor', '--{ml_ignore}'); COMMIT |
handle_UploadData と handle_DownloadData の各イベント用の Java メソッドを登録します。
Interactive SQL で次の SQL 文を実行します。
CALL ml_add_java_connection_script( 'default', 'handle_UploadData', 'MobiLinkOrders.GetUpload' ); CALL ml_add_java_connection_script( 'default', 'handle_DownloadData', 'MobiLinkOrders.SetDownload' ); |
Interactive SQL によって、GetUpload と SetDownload の各メソッドが、handle_UploadData と handle_DownloadData の各イベント用にそれぞれ登録されます。これらのメソッドは次のレッスンで作成します。
download_cursor と download_delete_cursor の各イベントを登録します。
Interactive SQL で次の SQL スクリプトを実行します。
CALL ml_add_table_script( 'default', 'OrderComments', 'download_cursor', '--{ml_ignore}'); CALL ml_add_table_script( 'default', 'OrderComments', 'download_delete_cursor', '--{ml_ignore}'); |
同期は双方向であり、アップロード専用ではないため、スクリプトを使用するときには、OrderComments テーブル用に download_cursor と download_delete_cursor の各イベントを登録してください。 必要なスクリプトを参照してください。
これまでの変更内容をコミットします。
Interactive SQL で次の SQL 文を実行します。
COMMIT; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |