Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » Ultra Light C/C++ プログラミング » チュートリアル » チュートリアル:C++ API を使用した Windows アプリケーションの構築

 

レッスン 4:アプリケーションへの同期の追加

このレッスンでは、アプリケーションを、コンピューター上で動作している統合データベースに同期する方法について説明します。

次の手順では、アプリケーションに同期コードを追加し、Mobile Link サーバーを起動し、アプリケーションを実行して同期します。

前のレッスンで作成した Ultra Light データベースは、Ultra Light 12 サンプルデータベースと同期します。Ultra Light 12 の Sample データベースの ULCustomer テーブルのカラムには、作成したローカル Ultra Light データベースの customer テーブルのカラムが含まれます。

このレッスンは、Mobile Link 同期についての知識を持っていることを前提としています。

 ♦ アプリケーションへの同期の追加
  1. 以下のメソッドを 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;
    }
  2. 次の行を、main メソッドの insert メソッドの呼び出しの直後、select メソッドの呼び出しの前に追加します。

    do_sync(conn);
  3. nmake を実行してアプリケーションをコンパイルします。

 ♦ データの同期
  1. Mobile Link サーバーを起動します。

    コマンドプロンプトで次のコマンドを実行します。

    mlsrv12 -c "dsn=SQL Anywhere 12 CustDB;uid=ml_server;pwd=sql" -v -vr -vs -zu+ -o custdbASA.log

    -zu+ オプションを指定すると、ユーザーの自動追加が行われます。-v+ オプションを指定すると、すべてのメッセージについて冗長ロギングがオンになります。

  2. コマンドプロンプトで customer と入力してアプリケーションを実行します。

    Mobile Link サーバーのメッセージウィンドウでは、同期の進行状況を示すステータスメッセージが表示されます。同期が正しく行われると、最後に「同期が完了しました。」というメッセージが表示されます。

 参照