Freigeben über


SQLAsyncNotificationCallback-Funktion

Konformität
Version eingeführt: ODBC 3.8

Standardkonformität: Keine

Zusammenfassung
SQLAsyncNotificationCallback ermöglicht es einem Treiber, an den Treiber-Manager zurückzurufen, wenn es einen Fortschritt beim aktuellen asynchronen Vorgang gibt, nachdem der Treiber SQL_STILL_EXECUTING zurückgegeben hat. SQLAsyncNotificationCallback kann nur vom Treiber aufgerufen werden.

Treiber rufen SQLAsyncNotificationCallback nicht mit dem Funktionsnamen SQLAsyncNotificationCallback auf. Stattdessen übergibt der Treiber-Manager einen Funktionszeiger an einen Treiber als Wert für das Attribut SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK oder SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK des entsprechenden Verbindungs-Handle bzw. Anweisungs-Handle. Unterschiedlichen Handlern können verschiedene Funktionszeigerwerte zugewiesen werden. Der Typ des Funktionszeigers wird als SQL_ASYNC_NOTIFICATION_CALLBACK definiert.

SQLAsyncNotificationCallback ist threadsicher. Ein Treiber kann mehrere Threads verwenden, die SQLAsyncNotificationCallback auf verschiedenen Handles gleichzeitig aufrufen.

Syntax

typedef SQLRETURN (SQL_API *SQL_ASYNC_NOTIFICATION_CALLBACK)(  
   SQLPOINTER pContex,   
   BOOL fLast);  

Arguments

pContex
Zeiger auf eine vom Treiber-Manager definierte Datenstruktur. Der Wert wird über SQLSetConnectAttr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) oder SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT) an den Treiber übergeben. Der Treiber hat keinen Zugriff auf den Wert.

fLast
Wird von einem Treiber verwendet, um anzuzeigen, dass dieser Aufruf der Rückruffunktion der letzte für den aktuellen asynchronen Vorgang ist. Der Treiber gibt einen anderen Rückgabecode als SQL_STILL_EXECUTING zurück, wenn der Treiber-Manager die Funktion erneut aufruft. Der Treiber-Manager kann diese Informationen z. B. verwenden, um die Anwendung im Voraus darüber zu informieren, dass der asynchrone Vorgang abgeschlossen wird.

Wenn Handle kein gültiges Handle des durch HandleType angegebenen Typs ist, gibt SQLCancelHandle SQL_INVALID_HANDLE zurück.

Rückkehr

SQL_SUCCESS oder SQL_ERROR.

Diagnostics

SQLAsyncNotificationCallback kann SQL_ERROR für die folgenden beiden Situationen zurückgeben (diese geben ein Implementierungsproblem im Treiber- oder Treiber-Manager an.

Fehler Description
Die Verbindung oder Abfrage hat keine Benachrichtigung angefordert.
Ungültiger Handle Der Treiber hat ein ungültiges Handle übergeben, was die Überprüfungstests des internen Treiber-Managers fehlschlagen ließ.

Siehe auch

Asynchrone Ausführung (Polling-Methode)