SQLAsyncNotificationCallback 函数

一致性
引入的版本: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

Syntax

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
连接或语句未请求通知。
无效 句柄 驱动程序传入无效句柄,导致内部驱动程序管理器验证测试失败。

另请参阅

异步执行(轮询方法)