Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Soulad
Představená verze: ODBC 3.8 Shoda standardů: Žádná
Summary
SQLCompleteAsync lze použít k určení, kdy je asynchronní funkce dokončena, pomocí zpracování založeného na notifikacích nebo dotazování. Pro více informací o asynchronních operacích viz Asynchronous Execution.
SQLCompleteAsync je implementován pouze ve Správci ovladačů ODBC.
V asynchronním režimu zpracování založeném na notifikacích je nutné SQLCompleteAsync volat poté, co Driver Manager vyvolá objekt události použitý pro oznámení. SQLCompleteAsync dokončuje asynchronní zpracování a asynchronní funkce vygeneruje návratový kód.
V asynchronním režimu zpracování založeném na pollingu je SQLCompleteAsync alternativou k volání původní asynchronní funkce, aniž by bylo nutné specifikovat argumenty v původním asynchronním volání. SQLCompleteAsync lze používat bez ohledu na to, zda je knihovna kurzorů ODBC povolena.
Syntax
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Arguments
HandleType
[Vstup] Typ rukojeti, na které se provádí asynchronní zpracování. Platné hodnoty jsou SQL_HANDLE_DBC nebo SQL_HANDLE_STMT.
Ukazatel
[Vstup] Rukojeť pro dokončení asynchronního zpracování. Pokud Handle není platný handle typu specifikovaného HandleType, SQLCompleteAsync vrátí SQL_INVALID_HANDLE.
Pokud Handle není platný handle typu specifikovaného HandleType, SQLCompleteAsync vrátí SQL_INVALID_HANDLE.
AsyncRetCodePtr
[Výstup] Ukazatel na buffer, který bude obsahovat return code asynchronního API. Pokud je AsyncRetCodePtr NULL, SQLCompleteAsync vrátí SQL_ERROR.
Returns
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA nebo SQL_INVALID_HANDLE.
Diagnostika
Pokud SQLCompleteAsync vrací SQL_SUCCESS, aplikace by měla získat zpětný kód asynchronní funkce z bufferu, na který ukazuje AsyncRetCodePtr. Související SQLSTATE, pokud existuje, lze získat voláním SQLGetDiagRec pomocí HandleType SQL_HANDLE_STMT a příkazové rukojeti, nebo HandleType SQL_HANDLE_DBC a connection handle. Tyto diagnostické záznamy jsou spojeny s asynchronní funkcí, nikoli s touto funkcí SQLCompleteAsync .
SQLCompleteAsync vrací kód jiný než SQL_SUCCESS, který indikuje, že SQLCompleteAsync není správně volán. SQLCompleteAsync v tomto případě nezveřejní žádný diagnostický záznam. Možné zpětné kódy jsou:
SQL_INVALID_HANDLE: Handle označený HandleType a Handle není platný.
SQL_ERROR: AsyncRetCodePtr je NULL nebo asynchronní zpracování není na handle povoleno.
SQL_NO_DATA: V režimu oznámení neprobíhá asynchronní operace nebo Driver Manager aplikaci neupozornil. V režimu dotazování neprobíhá asynchronní operace.
Comments
V asynchronním režimu zpracování založeném na pollingu může být AsyncRetCodePtr SQL_STILL_EXECUTING, když SQLCompleteAsync vrací SQL_SUCCESS. Aplikace by měla pokračovat v dotazování, dokud AsyncRetCodePtr nebude SQL_STILL_EXECUTING. V asynchronním režimu zpracování založeném na notifikacích nebude AsyncRetCodePtr nikdy SQL_STILL_EXECUTING.