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

SQL Anywhere 11.0.1 (日本語) » Ultra Light - C/C++ プログラミング » API リファレンス » Ultra Light C/C++ 共通 API リファレンス

 

ULRegisterSQLPassthroughCallback

現在のステータスを提供するコールバック関数を登録します。

構文
void ULRegisterSQLPassthroughCallback (
    SQLCA * sqlca,
    ul_sql_passthrough_observer_fncallback,
    ul_void *   user_data
);
パラメータ
  • sqlca   SQLCA へのポインタ。

    C++ API では、Sqlca.GetCA メソッドを使用します。

  • callback   コールバック関数の名前。

    コールバック値に UL_NULL を指定すると、以前に登録したコールバック関数が無効になります。

  • user_data   グローバル変数の代わりに、コンテキスト情報をグローバルにアクセスできるようにします。コールバック関数はアプリケーションの任意のロケーションから呼び出すことができるため、このパラメータは必須です。提供するデータが Ultra Light によって変更されることはありません。コールバック関数の起動時に、データだけが渡されます。

    データ型を宣言し、コールバック関数内の適切なデータ型にキャストできます。たとえば、コールバック関数に次の形式の行を指定できます。

    MyContextType * context = (MyContextType *) user_data;

ULRegisterSQLPassthroughCallback を呼び出すコールバックとコードのサンプルを次に示します。

static void UL_GENNED_FN_MOD passthroughCallback( ul_sql_passthrough_status * status ) {
    switch( status->state ) {
        case UL_SQL_PASSTHROUGH_STATE_STARTING:
            printf( "SQL Passthrough script execution starting\n" );
            break;
        case UL_SQL_PASSTHROUGH_STATE_RUNNING_SCRIPT:
            printf( "Executing script %d of %d\n", status->cur_script, status->script_count );
            break;
        case UL_SQL_PASSTHROUGH_STATE_DONE:
            printf( "Finished executing SQL Passthrough scripts\n" );
            break;
        default:
            printf( "SQL Passthrough script execution has failed\n" );
            break;
    }
}

int main() {
    ULSqlca sqlca;

    sqlca.Initialize();
    ULRegisterSQLPassthroughCallback( sqlca.GetCA(), passthroughCallback, NULL );
    DatabaseManager * dm = ULInitDatabaseManager( sqlca );
    ...
}