Sdílet prostřednictvím


SQLAsyncNotificationCallback – funkce

Soulad
Zavedená verze: ODBC 3.8

Dodržování standardů: Žádné

Shrnutí
SQLAsyncNotificationCallback umožňuje ovladač volat zpět do Správce ovladačů, pokud existuje nějaký pokrok pro aktuální asynchronní operaci po vrácení ovladače SQL_STILL_EXECUTING. SQLAsyncNotificationCallback může volat pouze ovladač.

Ovladače nevolají SQLAsyncNotificationCallback s názvem funkce SQLAsyncNotificationCallback. Místo toho správce ovladačů předá ukazatel funkce ovladači jako hodnotu atributu SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK nebo SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK odpovídajícího popisovače připojení nebo popisovače příkazu. Různým popisovačům se můžou přiřadit různé hodnoty ukazatelů funkcí. Typ ukazatele funkce je definován jako SQL_ASYNC_NOTIFICATION_CALLBACK.

SQLAsyncNotificationCallback je bezpečný pro přístup z více vláken. Ovladač se může rozhodnout použít více vláken volajících SQLAsyncNotificationCallback na různých popisovačích současně.

Syntaxe

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

Arguments

pContex
Ukazatel na datovou strukturu definovanou správcem ovladačů. Hodnota se předává ovladači prostřednictvím SQLSetConnectAttr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) nebo SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT). Ovladač nemá přístup k hodnotě.

fLast
Ovladač používá k označení, že vyvolání této funkce zpětného volání je posledním voláním pro aktuální asynchronní operaci. Ovladač vrátí jiný návratový kód než SQL_STILL_EXECUTING, když správce ovladačů znovu zavolá funkci. Správce ovladačů může tyto informace použít například k tomu, aby předem informoval aplikaci, že asynchronní operace bude dokončena.

Pokud Handle není platným popisovačem typu specifikovaného HandleType, SQLCancelHandle vrátí SQL_INVALID_HANDLE.

Návraty

SQL_SUCCESS nebo SQL_ERROR.

Diagnostika

SQLAsyncNotificationCallback může vrátit SQL_ERROR pro následující dvě situace (označují problém implementace ovladače nebo správce ovladačů.

Error Description
Připojení nebo příkaz nepožadoval oznámení.
Neplatný popisovač Ovladač předal neplatný popisovač, který neprošel interními validačními testy Správce ovladačů.

Viz také

Asynchronní spuštění (metoda dotazování)