Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konformität
Eingeführte Version: ODBC 3.8 Standards Compliance: Keine
Summary
SQLCompleteAsync kann verwendet werden, um zu bestimmen, wann eine asynchrone Funktion abgeschlossen ist, entweder mittels Benachrichtigungs- oder Abfrage-basierter Verarbeitung. Weitere Informationen zu asynchronen Operationen finden Sie unter Asynchrone Ausführung.
SQLCompleteAsync ist nur im ODBC Driver Manager implementiert.
Im benachrichtigungsbasierten asynchronen Verarbeitungsmodus muss SQLCompleteAsync aufgerufen werden, nachdem der Treibermanager das für die Benachrichtigung verwendete Ereignisobjekt aufgerufen hat. SQLCompleteAsync vervollständigt die asynchrone Verarbeitung und die asynchrone Funktion generiert einen Rückgabecode.
Im pollingbasierten asynchronen Verarbeitungsmodus ist SQLCompleteAsync eine Alternative zum Aufruf der ursprünglichen asynchronen Funktion, ohne die Argumente im ursprünglichen asynchronen Funktionsaufruf angeben zu müssen. SQLCompleteAsync kann unabhängig davon verwendet werden, ob die ODBC Cursor Library aktiviert ist.
Syntax
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Argumente
HandleType-
[Eingabe] Der Typ des Griffs, auf dem asynchrone Verarbeitung durchgeführt wird. Gültige Werte sind SQL_HANDLE_DBC oder SQL_HANDLE_STMT.
Griff
[Eingabe] Der Griff, auf dem asynchrone Verarbeitung abgeschlossen wird. Wenn Handle kein gültiger Handle des von HandleType angegebenen Typs ist, gibt SQLCompleteAsync SQL_INVALID_HANDLE zurück.
Wenn Handle kein gültiger Handle des von HandleType angegebenen Typs ist, gibt SQLCompleteAsync SQL_INVALID_HANDLE zurück.
AsyncRetCodePtr
[Ausgabe] Zeiger auf einen Puffer, der den Rückgabecode der asynchronen API enthält. Wenn AsyncRetCodePtr NULL ist, gibt SQLCompleteAsync SQL_ERROR zurück.
Rücklieferungen
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA oder SQL_INVALID_HANDLE.
Diagnostics
Wenn SQLCompleteAsync SQL_SUCCESS zurückgibt, sollte eine Anwendung den Rückgabecode der asynchronen Funktion aus dem von AsyncRetCodePTR verweisenden Puffer erhalten. Der zugehörige SQLSTATE, falls vorhanden, kann durch das Aufrufen von SQLGetDiagRec mit einem HandleType von SQL_HANDLE_STMT und einem Anweisungshandle oder einem HandleType von SQL_HANDLE_DBC und einem Connection Handle erhalten werden. Diese diagnostischen Datensätze sind mit der asynchronen Funktion verknüpft, nicht mit dieser SQLCompleteAsync-Funktion .
SQLCompleteAsync liefert einen anderen Code als SQL_SUCCESS, der anzeigt, dass SQLCompleteAsync nicht korrekt aufgerufen wird. SQLCompleteAsync wird in diesem Fall keinen Diagnosedatensatz veröffentlichen. Mögliche Rückgabecodes sind:
SQL_INVALID_HANDLE: Der durch HandleType und Handle angegebene Handle ist kein gültiger Handle.
SQL_ERROR: AsyncRetCodePtr ist NULL oder asynchrone Verarbeitung ist auf dem Handle nicht aktiviert.
SQL_NO_DATA: Im Benachrichtigungsmodus ist eine asynchrone Operation nicht im Gange oder der Treibermanager hat die Anwendung nicht benachrichtigt. Im Abfragemodus ist keine asynchrone Operation im Gange.
Kommentare
Im pollingbasierten asynchronen Verarbeitungsmodus könnte AsyncRetCodePtr SQL_STILL_EXECUTING sein, wenn SQLCompleteAsync SQL_SUCCESS zurückgibt. Die Anwendung sollte weiter abfragen, bis AsyncRetCodePtr nicht mehr SQL_STILL_EXECUTING ist. Im benachrichtigungsbasierten asynchronen Verarbeitungsmodus wird AsyncRetCodePtr niemals SQL_STILL_EXECUTING.