JetRegisterCallback 函数
适用于: Windows |Windows Server
JetRegisterCallback 函数
JetRegisterCallback 函数允许应用程序配置数据库引擎,以便向应用程序发出特定事件的通知。 这些通知与特定表相关联,并且仅在使用 JetTerm 关闭包含该表的实例之前一直有效。
Windows XP:JetRegisterCallback 在 Windows XP 中引入。
JET_ERR JET_API JetRegisterCallback(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_CBTYP cbtyp,
__in JET_CALLBACK pCallback,
__in void* pvContext,
__out JET_HANDLE* phCallbackId
);
参数
sesid
用于此调用的会话。
tableid
要用于此调用的游标。
cbtyp
由应用程序希望接收通知的回调原因组成的位掩码。
若要创建此位掩码,请从 JET_CBTYP 枚举中简单或结合有效的回调原因。
pCallback
指向应用程序的回调函数的函数指针。
pvContext
指定将提供给应用程序的回调函数的上下文指针。
phCallbackId
返回一个句柄,该句柄稍后可用于使用 JetUnregisterCallback 取消给定回调函数的注册。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errClientRequestToStopJetService |
无法完成操作,因为与会话关联的实例上的所有活动都因调用 JetStopService 而停止。 |
JET_errInstanceUnavailable |
无法完成操作,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 此错误仅由 Windows XP 及更高版本返回。 |
JET_errInvalidParameter |
提供的其中一个参数包含意外值,或者包含与另一个参数的值组合时没有意义的值。 在以下情况下 ,JetRegisterCallback 将返回此错误:
|
JET_errNotInitialized |
无法完成操作,因为与会话关联的实例尚未初始化。 |
JET_errRestoreInProgress |
无法完成该操作,因为正在对与会话关联的实例执行还原操作。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 此错误仅由 Windows XP 及更高版本返回。 |
JET_errTermInProgress |
无法完成操作,因为正在关闭与会话关联的实例。 |
成功后,将使用与给定游标关联的表,根据给定回调原因注册指定的回调。 不会更改数据库状态。
失败时,将不会注册回调。 不会更改数据库状态。
备注
此方法为应用程序提供了一种方法,用于将易失性回调与数据库中的表相关联。 如果应用程序希望将持久回调与数据库中的表相关联,则应使用 JetCreateTableColumnIndex 将回调传递给JET_TABLECREATE。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista 或 Windows XP。 |
服务器 |
需要 Windows Server 2008 或 Windows Server 2003。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另请参阅
JET_CALLBACK
JET_CBTYP
JET_ERR
JET_HANDLE
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetTerm
JetUnregisterCallback