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 - サーバ管理 » Mobile Link サーバ API » .NET での同期スクリプトの作成 » .NET 用 Mobile Link サーバ API リファレンス

 

DownloadTableData インタフェース

構文
interface DownloadTableData
備考

1 つのダウンロード・テーブルの情報を同期用にカプセル化します。このインタフェースを使用して、同期クライアント・サイトにダウンロードされるデータ操作を設定します。

たとえば、次のテーブルがあるとします。

CREATE TABLE remoteOrders (
    pk INT NOT NULL,
    col1 VARCHAR(200),
    PRIMARY KEY (pk)
);

次の例では、DownloadData.GetDownloadTableByName メソッドを使用して、remoteOrders テーブルを表す DownloadTableData インスタンスを返します。

// The method used for the handle_DownloadData event
public void HandleDownload() {
    // _cc is a DBConnectionContext instance.

    // Get the DownloadData for the current synchronization.
    DownloadData my_dd = _cc.GetDownloadData();
 
    // Get the DownloadTableData for the remoteOrders table.
    DownloadTableData td = my_dd.GetDownloadTableByName("remoteOrders");

    // User defined-methods to set download operations.
    SetDownloadUpserts(td);
    SetDownloadDeletes(td); 

    // ... 
}

この例では、SetDownloadInserts メソッドは DownloadTableData.GetUpsertCommand を使用して、挿入または更新するローのコマンドを取得します。IDbCommand は、リモート・データベースに挿入する値の設定先となるパラメータを保持します。

void SetDownloadInserts(DownloadTableData td) { 
    IDbCommand  upsert_cmd = td.GetUpsertCommand();
    IDataParameterCollection parameters = upsert_cmd.Parameters;
    
    // The following method calls are the same as the following SQL statement:
    // INSERT INTO remoteOrders(pk, col1) values(2300, "truck");
    ((IDataParameter) (parameters[0])).Value = (Int32) 2300;
    ((IDataParameter) (parameters[1])).Value = (String) "truck";

    if (upsert_cmd.ExecuteNonQuery() > 0) {
        // Insert was not filtered.
    }
    else {
        // Insert was filtered because it was uploaded
        // in the same synchronization.
    }
 }

SetDownloadDeletes メソッドは DownloadTableData.GetDeleteCommand を使用して、削除するローのコマンドを取得します。

void SetDownloadDeletes(DownloadTableData td) { 
    IDbCommand  delete_cmd = t2_download_dd.GetDeleteCommand();

    // The following method calls are the same as the following SQL statement:
    // DELETE FROM remoteOrders  where pk = 2300;
    IDataParameterCollection parameters = delete_cmd.Parameters;
    ((IDataParameter) (parameters[0])).Value = (Int32) 2300;
    delete_cmd.ExecuteNonQuery();
}

GetDeleteCommand メソッド
GetLastDownloadTime メソッド
GetName メソッド
GetSchemaTable メソッド
GetUpsertCommand メソッド