Share via


SQLAsyncNotificationCallback-Funktion

Konformität
Version eingeführt: ODBC 3.8

Standardscompliance: Keine

Zusammenfassung
SQLAsyncNotificationCallback ermöglicht es einem Treiber, den Treiber zurück an den Treiber-Manager zurückzurufen, wenn ein Fortschritt für den aktuellen asynchronen Vorgang auftritt, 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 Verbindungsziehpunkts bzw. Anweisungshandle. Unterschiedliche Ziehpunkte können verschiedenen Funktionszeigerwerten 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);  

Argumente

pContex
Zeiger auf eine vom Treiber-Manager definierte Datenstruktur. Der Wert wird über SQLSet Verbinden Attr(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 diese 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.

Gibt zurück

SQL_SUCCESS oder SQL_ERROR.

Diagnostik

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

Error Beschreibung
Verbinden ion oder Anweisung hat keine Benachrichtigung angefordert.
Ungültiger Handle Der Treiber wurde in einem ungültigen Handle übergeben, bei dem die überprüfungstests des internen Treiber-Managers fehlgeschlagen sind.

Weitere Informationen

Asynchrone Ausführung (Abrufmethode)