Diese Callback-Funktion gibt den Fortschritt der Skriptausführung (Status) während einer SQL-Passthrough-Skriptausführung an.
void ul_sql_passthrough_observer_fn( ul_sql_passthrough_status * status );
ul_sql_passthrough_status Zeigt den aktuellen Status der Skriptausführung mit Status, Anzahl der auszuführenden Skripten, derzeit ausgeführtem Skript und den Benutzerdaten, die im registrierten Aufruf übergeben werden.
Die Beobachter-Callbackfunktion für den Verarbeitungsfortschritt wird wie folgt definiert:
typedef void(UL_CALLBACK_FN * ul_sql_passthrough_observer_fn) (ul_sql_passthrough_status * status); |
Die ul_sql_passthrough_status-Struktur ist wie folgt definiert:
typedef struct { ul_sql_passthrough_state state; // current state ul_u_long script_count; // total number of scripts to execute ul_u_long cur_script; // current script being executed (1-based) ul_bool stop; // set to true to stop script execution // can only be set in the starting state ul_void * user_data; // user data provided in register call SQLCA * sqlca; } ul_sql_passthrough_status; |
Die Beobachter-Callbackfunktion für den Verarbeitungsfortschritt wird über die folgende Methode registriert:
UL_FN_SPEC ul_ret_void UL_FN_MOD ULRegisterSQLPassthroughCallback( SQLCA * sqlca, ul_sql_passthrough_observer_fn callback, ul_void * user_data ); |
Nachstehend finden Sie einen Callback-Beispielcode zum Aufruf von 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 ); ... } |
Gibt eine der folgenden Aktionen zurück:
UL_ERROR_ACTION_CANCEL Vorgang abbrechen, der zu dem Fehler geführt hat.
UL_ERROR_ACTION_CONTINUE Fortsetzen und den Vorgang ignorieren, der zu dem Fehler geführt hat.
UL_ERROR_ACTION_DEFAULT So verhalten, als ob es keinen Fehler-Callback gibt.
UL_ERROR_ACTION_TRY_AGAIN Vorgang wiederholen, der zu dem Fehler geführt hat
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |