このレッスンでは、アプリケーションを、コンピューター上で動作している統合データベースに同期する方法について説明します。
次の手順では、アプリケーションに同期コードを追加し、Mobile Link サーバーを起動し、アプリケーションを実行して同期します。
前のレッスンで作成した Ultra Light データベースは、Ultra Light 12 サンプルデータベースと同期します。Ultra Light 12 の Sample データベースの ULCustomer テーブルのカラムには、作成したローカル Ultra Light データベースの customer テーブルのカラムが含まれます。
このレッスンは、Mobile Link 同期についての知識を持っていることを前提としています。
以下のメソッドを customer.cpp に追加します。このメソッドでは、次のタスクを実行します。
EnableTcpipSynchronization を呼び出して、TCP/IP 通信を有効にします。同期は、HTTP、HTTPS、および TLS を使用しても実行できます。
スクリプトバージョンを設定します。Mobile Link 同期は、統合データベースに保存されているスクリプトによって制御されます。スクリプトバージョンは、使用するスクリプトセットを識別します。
Mobile Link ユーザー名を設定します。この値は、Mobile Link サーバーでの認証に使用されます。アプリケーションによっては、Mobile Link のユーザー ID と Ultra Light データベースのユーザー ID を同じに設定しますが、これらの ID はあくまでも別のものです。
download_only パラメーターを true に設定します。デフォルトでは、Mobile Link 同期は双方向です。このアプリケーションでは、テーブルのローがサンプルデータベースにアップロードされないように、ダウンロード専用同期を使用します。
static bool do_sync( ULConnection * conn ) { ul_sync_info info; ul_stream_error * se = &info.stream_error; ULDatabaseManager::EnableTcpipSynchronization(); conn->InitSyncInfo( &info ); info.stream = "TCPIP"; info.version = "custdb 12.0"; info.user_name = "50"; info.download_only = true; if( !conn->Synchronize( &info ) ) { _tprintf( "Synchronization error \n" ); _tprintf( " stream_error_code is '%lu'\n", se->stream_error_code ); _tprintf( " system_error_code is '%ld'\n", se->system_error_code ); _tprintf( " error_string is '" ); _tprintf( "%s", se->error_string ); _tprintf( "'\n" ); return false; } return true; } |
次の行を、main メソッドの insert メソッドの呼び出しの直後、select メソッドの呼び出しの前に追加します。
do_sync(conn); |
nmake を実行してアプリケーションをコンパイルします。
Mobile Link サーバーを起動します。
コマンドプロンプトで次のコマンドを実行します。
mlsrv12 -c "dsn=SQL Anywhere 12 CustDB;uid=ml_server;pwd=sql" -v -vr -vs -zu+ -o custdbASA.log |
-zu+ オプションを指定すると、ユーザーの自動追加が行われます。-v+ オプションを指定すると、すべてのメッセージについて冗長ロギングがオンになります。
コマンドプロンプトで customer と入力してアプリケーションを実行します。
Mobile Link サーバーのメッセージウィンドウでは、同期の進行状況を示すステータスメッセージが表示されます。同期が正しく行われると、最後に「同期が完了しました。
」というメッセージが表示されます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |