符合性
推出版本:ODBC 3.8
標準合規:無
總結
SQLAsyncNotificationCallback 允許驅動程式在返回 SQL_STILL_EXECUTING 後,當當前非同步操作有某些進展時,回撥至驅動程式管理器。
SQLAsyncNotificationCallback 只能由驅動程式呼叫。
驅動程式不會呼叫 SQLAsyncNotificationCallback ,函式名稱為 SQLAsyncNotificationCallback。 相反地,驅動程式管理器會將函式指標傳遞給驅動程式,作為對應連接句柄或語句柄的 SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK 或 SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK 屬性的值。 不同的句柄可能會被分配不同的函式指標值。 函數指標的型別定義為 SQL_ASYNC_NOTIFICATION_CALLBACK。
SQLAsyncNotificationCallback 是執行緒安全的。 驅動程式可以選擇同時使用多個執行緒呼叫 SQLAsyncNotificationCallback ,針對不同的句柄。
語法
typedef SQLRETURN (SQL_API *SQL_ASYNC_NOTIFICATION_CALLBACK)(
SQLPOINTER pContex,
BOOL fLast);
Arguments
pContex
指標指向由驅動程式管理器定義的資料結構。 該值會透過 SQLSetConnectAttr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) 或 SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT) 傳遞給驅動程式。 駕駛人無法取得該數值。
fLast
驅動程式用來表示此回調函式是目前非同步操作的最後一次呼叫。 當驅動管理員再次呼叫該函式時,驅動程式會回傳非 SQL_STILL_EXECUTING 的回傳碼。 例如,驅動程式管理器可能會利用這些資訊事先通知應用程式非同步操作將完成。
若 Handle 不是 HandleType 所指定的類型的有效控制代碼,SQLCancelHandle 會回傳 SQL_INVALID_HANDLE。
退貨
SQL_SUCCESS或SQL_ERROR。
Diagnostics
SQLAsyncNotificationCallback 可在以下兩種情況下回傳SQL_ERROR(這些表示驅動程式或驅動程式管理器的實作問題)。
| 錯誤 | Description |
|---|---|
| 連線或聲明未請求通知。 | |
| 無效 的句柄 | 驅動程式輸入了無效的句柄,導致內部驅動程式管理器的驗證測試失敗。 |