Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Överensstämmelse
Version introducerad: ODBC 3.8 Standarder Efterlevnad: Ingen
Summary
SQLCompleteAsync kan användas för att avgöra när en asynkron funktion är klar med antingen notifikations- eller pollingbaserad bearbetning. För mer information om asynkrona operationer, se Asynkron exekvering.
SQLCompleteAsync är endast implementerat i ODBC Driver Manager.
I notifikationsbaserat asynkront bearbetningsläge måste SQLCompleteAsync anropas efter att Driver Manager har tagit upp händelseobjektet som används för notifikationen. SQLCompleteAsync slutför den asynkrona bearbetningen och den asynkrona funktionen genererar en returkod.
I polling-baserat asynkront bearbetningsläge är SQLCompleteAsync ett alternativ till att anropa den ursprungliga asynkrona funktionen, utan att behöva specificera argumenten i det ursprungliga asynkrona funktionsanropet. SQLCompleteAsync kan användas oavsett om ODBC Cursor Library är aktiverat eller inte.
Syntax
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Arguments
HandleType
[Input] Typen av handtag som ska utföra asynkron bearbetning. Giltiga värden är SQL_HANDLE_DBC eller SQL_HANDLE_STMT.
Hanterare
[Input] Handtaget som krävs för att genomföra asynkron bearbetning. Om Handle inte är ett giltigt handtag av den typ som anges av HandleType, returnerar SQLCompleteAsync SQL_INVALID_HANDLE.
Om Handle inte är ett giltigt handtag av den typ som anges av HandleType, returnerar SQLCompleteAsync SQL_INVALID_HANDLE.
AsyncRetCodePtr
[Utdata] Peka på en buffert som kommer att innehålla returkoden för det asynkrona API:et. Om AsyncRetCodePtr är NULL, returnerar SQLCompleteAsync SQL_ERROR.
Returns
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA eller SQL_INVALID_HANDLE.
Diagnostics
Om SQLCompleteAsync returnerar SQL_SUCCESS bör en applikation hämta returkoden för den asynkrona funktionen från bufferten som pekas på av AsyncRetCodePtr. Den associerade SQLSTATE, om någon, kan erhållas genom att anropa SQLGetDiagRec med en HandleType av SQL_HANDLE_STMT och ett satshandtag eller en HandleType av SQL_HANDLE_DBC och ett anslutningshandtag. Dessa diagnostiska poster är kopplade till den asynkrona funktionen, inte denna SQLCompleteAsync-funktion .
SQLCompleteAsync returnerar en kod som inte SQL_SUCCESS för att indikera att SQLCompleteAsync inte anropas korrekt. SQLCompleteAsync kommer inte att publicera någon diagnostisk post i detta fall. Möjliga returkoder är:
SQL_INVALID_HANDLE: Handtaget som anges av HandleType och Handle är inte ett giltigt handtag.
SQL_ERROR: AsyncRetCodePtr är NULL eller så är asynkron bearbetning inte aktiverad på handtaget.
SQL_NO_DATA: I notifikationsläge pågår ingen asynkron operation eller så har Driver Manager inte meddelat applikationen. I polling-läge pågår ingen asynkron operation.
Comments
I polling-baserat asynkront bearbetningsläge kan AsyncRetCodePtr vara SQL_STILL_EXECUTING när SQLCompleteAsync returnerar SQL_SUCCESS. Applikationen bör fortsätta polla tills AsyncRetCodePtr inte är SQL_STILL_EXECUTING. I notifikationsbaserat asynkront bearbetningsläge kommer AsyncRetCodePtr aldrig att SQL_STILL_EXECUTING.