現在のステータスを提供するコールバック関数を登録します。
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 ); ... } |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |