Registriert eine Callback-Funktion, die den Status des Verarbeitungsfortschritts angibt.
void ULRegisterSQLPassthroughCallback ( SQLCA * sqlca, ul_sql_passthrough_observer_fn callback, ul_void * user_data );
sqlca Ein Zeiger auf den SQL-Kommunikationsbereich (SQLCA-Bereich).
Verwenden Sie in der C++-API die Methode Sqlca.GetCA.
callback Der Name Ihrer Callback-Funktion.
Ein Callback-Wert UL_NULL deaktiviert alle vorher registrierten Callback-Funktionen.
user_data Eine Alternative zu globalen Variablen, um Kontextinformationen global verfügbar zu machen. Dies ist erforderlich, da Sie die Callback-Funktion von allen Positionen in Ihrer Anwendung aus aufrufen können. UltraLite ändert die übergebenen Daten nicht, sondern übergibt sie einfach an Ihre Callback-Funktion, wenn diese aufgerufen wird.
Sie können jeden beliebigen Datentyp deklarieren und in Ihrer Callback-Funktion in den richtigen Typ umwandeln. Sie können beispeilsweise eine Zeile der folgenden Art in Ihre Callback-Funktion aufnehmen:
MyContextType * context = (MyContextType *) 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 ); ... } |
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 |