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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ起動同期 » サーバ起動同期チュートリアル » チュートリアル:ライトウェイト・ポーリングを使用したサーバ起動同期

 

レッスン 2:データベース・スキーマの生成

このレッスンでは、1 つのデータベース・スキーマを生成します。このスキーマには、Dealer テーブル、non_sync_request テーブル、download_cursor 同期スクリプトが含まれます。このデータベース・スキーマは、Push 要求を生成するための稼働条件を満たしています。

♦  データベース・スキーマを設定するには、次の手順に従います。
  1. 統合データベースに接続します。

    1. Sybase Central で、[SQL Anywhere 11] を右クリックし、[接続] を選択します。

    2. [ID] タブをクリックします。

    3. [ODBC データ・ソース名] をクリックし、SIS_CarDealer_LP_DBLSN_CONDB と入力します。[OK] をクリックします。

  2. Interactive SQL を起動します。

    左ウィンドウ枠で、データベースを右クリックし、[Interactive SQL を開く] を選択します。

  3. 次の文を実行し、Dealer テーブルと non_sync_request テーブルを作成して設定します。

    CREATE TABLE Dealer (
        name           VARCHAR(10) NOT NULL PRIMARY KEY,
        rating         VARCHAR(5),
        last_modified  TIMESTAMP DEFAULT TIMESTAMP
    )
    
    CREATE TABLE non_sync_request(
        poll_key       varchar(128)
    )
  4. 次の文を使用して、Dealer テーブルにデータを挿入します。

    INSERT INTO Dealer(name, rating) VALUES ('Audi', 'a');
    INSERT INTO Dealer(name, rating) VALUES ('Buick', 'b');
    INSERT INTO Dealer(name, rating) VALUES ('Chrysler', 'c');
    INSERT INTO Dealer(name, rating) VALUES ('Dodge', 'd');
    INSERT INTO Dealer(name, rating) VALUES ('Eagle', 'e');
    INSERT INTO Dealer(name, rating) VALUES ('Ford', 'f');
    INSERT INTO Dealer(name, rating) VALUES ('Geo', 'g');
    INSERT INTO Dealer(name, rating) VALUES ('Honda', 'h');
    INSERT INTO Dealer(name, rating) VALUES ('Isuzu', 'I');
    COMMIT;
  5. 次のコマンドを実行して Mobile Link のシステム・テーブルとストアド・プロシージャを作成します。c:\Program Files\SQL Anywhere 11\ は、SQL Anywhere 11 のインストール環境のディレクトリ名に置き換えてください。

    read "c:\Program Files\SQL Anywhere 11\MobiLink\setup\syncsa.sql"
  6. 次の文を実行し、download_cursor 同期スクリプトを指定して ml_sis_sync_state システム・テーブルに同期ステータスを記録します。

    CALL ml_add_table_script(
        'CarDealer',
        'Dealer',
        'download_cursor',
        'SELECT * FROM Dealer WHERE last_modified >= ?'
    );
    CALL ml_add_connection_script(
        'CarDealer',
        'publication_nonblocking_download_ack',
        'CALL ml_set_sis_sync_state( 
    			     {ml s.remote_id},
            NULL,
         			{ml s.publication_name},
         			{ml s.username},
         			NULL,
         			{ml s.last_publication_download}
        )'
    );
    COMMIT;

    このスクリプトによって、ダウンロード専用同期を記録するように ml_sis_sync_state が設定されます。同期ステータスを記録すると、request_cursor イベントから ml_sis_sync_state システム・テーブルを参照できます。次のレッスンでは request_cursor イベントを指定します。

  7. Interactive SQL を閉じます。

参照