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

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

 

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

このレッスンでは、アプリケーションに同期コードを追加し、Mobile Link サーバを起動し、アプリケーションを実行して、統合されたデータベースと同期させます。

前提条件

このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:データベースの作成とデータベースへの接続を参照してください。

内容と備考

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

 ♦ タスク
  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. do_select メソッド呼び出し後に、次のコード行を main メソッドに配置します。

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

  4. Mobile Link サーバを起動します。

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

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

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

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

結果

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

 参照