JET_CBTYP

适用于: Windows |Windows Server

JET_CBTYP

JET_CBTYP常量组描述了数据库引擎将通过调用JET_CALLBACK回调函数通知应用程序的操作中的所有可能点。 数据库引擎在回调函数的 cbtyp 参数中传递其中一个常量。 数据库引擎在此调用中传递的其他参数的含义取决于传递的特定 JET_CBTYP

Windowsxp: windows XP 中引入了 JET_CBTYP 组常量。

常量/值

说明

JET_cbtypNull
0x00000000

此回调是保留的,始终被视为无效。

JET_cbtypFinalize
0x00000001

此回调保留供将来使用。

JET_cbtypBeforeInsert
0x00000002

此回调将在通过调用 JetUpdate 将新记录插入表中之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:具有要插入的记录的会话。

  • dbid:包含要插入的记录的表的数据库 ID。

  • tableid:准备要插入的新记录的游标。 请务必注意,任何版本或自动递增列的值目前可能不正确。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL 如果回调返回错误,则发起回调的操作将失败并出现该错误。

JET_cbtypAfterInsert
0x00000004

此回调将在通过对 JetUpdate 的调用将新记录插入表中之后,但在 JetUpdate 返回到其调用方之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:包含刚刚插入的记录的会话。

  • dbid:包含刚插入的记录的表的数据库 ID。

  • tableid:刚刚插入的记录所在的表上的光标。 请注意,游标仍位于插入回调之前所在的同一索引项上。 进一步请注意,此索引条目可能与要插入的记录没有任何关系。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL 如果回调返回了错误,则会忽略该错误。

JET_cbtypBeforeReplace
0x00000008

此回调将在表中通过调用 JetUpdate 更改现有记录之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:具有要更改的记录的会话。

  • dbid:包含要更改的记录的表的数据库 ID。

  • tableid:光标位于与要更改的记录关联的索引项上。 请务必注意,任何版本或自动递增列的值目前可能不正确。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL 如果回调返回错误,则发起回调的操作将失败并出现该错误。

JET_cbtypAfterReplace
0x00000010

此回调将在表中的现有记录通过调用 JetUpdate 更改之后,但在 JetUpdate 返回到其调用方之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:具有刚刚更改的记录的会话。

  • dbid:包含刚刚更改的记录的表的数据库 ID。

  • tableid:光标位于与刚刚更改的记录关联的索引项上。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL 如果回调返回了错误,则会忽略该错误。

JET_cbtypBeforeDelete
0x00000020

此回调将在通过调用 JetDelete 删除表中的现有记录之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:具有要删除的记录的会话。

  • dbid:包含要删除的记录的表的数据库 ID。

  • tableid:游标位于与要删除的记录关联的索引项上。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL 如果回调返回错误,则发起回调的操作将失败并出现该错误。

JET_cbtypAfterDelete
0x00000040

此回调将发生在通过 对 JetDelete 的调用删除了表中的现有记录之后,但在 JetDelete 返回到其调用方之前发生。

此回调原因的函数指针通过 JET_TABLECREATE 传递到 JetCreateTableColumnIndex,或者在运行时通过 JetRegisterCallback 进行配置。 有关详细信息,请参阅 JET_TABLECREATEJetRegisterCallback

回调参数将具有以下值:

  • sesid:包含刚刚删除的记录的会话。

  • dbid:包含刚刚删除的记录的表的数据库 ID。

  • tableid:游标位于与刚刚删除的记录关联的索引项上。

  • pvArg1NULL

  • pvArg2NULL

  • pvContext:传递到 JetRegisterCallbackNULL 的上下文指针。

  • ulUnusedNULL

如果回调返回错误,则会忽略该错误。

JET_cbtypUserDefinedDefaultValue
0x00000080

当引擎需要从应用程序检索用户定义列的默认值时,将发生此回调。 此回调实质上是 JetRetrieveColumn 的有限实现,由应用程序评估。 对于用户定义的默认值,最多可以返回一个列值。

此回调原因的函数指针通过 JET_USERDEFINEDDEFAULT 结构传递给 JetAddColumn,或通过 JET_TABLECREATE 结构中的 JET_COLUMNCREATE 结构中的JET_USERDEFINEDDEFAULT结构传递给 JetCreateTableColumnIndex

回调参数将具有以下值:

  • sesid:正在计算用户定义的默认值的会话

  • dbid:包含用户定义的默认值的表的数据库 ID

  • tableid:位于正在检索用户定义默认值的记录上的游标

  • pvArg1:用户定义的默认值的输出缓冲区

  • pvArg2:在输入时,这是输出缓冲区的大小。 在输出中,这是用户定义的默认值的实际大小。 在任一情况下,大小都是 32 位无符号整数。

  • pvContext:指向创建列时包含 JET_USERDEFINEDDEFAULT 结构中指定的用户数据的缓冲区的指针;如果未提供上下文,则为 NULL。

  • ulUnused:要为其检索用户定义默认值的列的列 ID。

如果回调返回错误,则发起回调的操作将失败并出现该错误。

如果回调返回JET_wrnBufferTruncated,则操作将继续,但在回调期间不会检索整个值。

如果回调返回JET_wrnColumnNull,则操作将继续,但用户定义列的默认值为 NULL。

JET_cbtypOnlineDefragCompleted
0x00000100

由 JetDefragment 启动的数据库的联机碎片整理由于进程完成或达到时间限制而停止时,将发生此回调。

此回调原因的函数指针将传递给 JetDefragment。 有关详细信息,请参阅 JetDefragment

回调参数将具有以下值:

  • sesid:用于对数据库或流文件JET_sesidNil执行联机碎片整理的会话。

  • dbid:正在为流式处理文件进行重整或JET_dbidNil的数据库的数据库 ID。

  • tableid:JET_tableidNil

  • pvArg1NULL

  • pvArg2NULL

  • pvContextNULL

  • ulUnusedNULL

如果回调返回错误,则将忽略该错误。

JET_cbtypFreeCursorLS
0x00000200

当应用程序需要清理与数据库引擎释放的游标关联的本地存储的上下文句柄时,将发生此回调。 有关详细信息,请参阅 JetSetLS

此回调原因的函数指针通过 JetSetSystemParameter 配置 JET_paramRuntimeCallback

回调参数将具有以下值:

  • sesid:JET_sesidNil

  • dbid:JET_dbidNil

  • tableid:JET_tableidNil

  • pvArg1:使用 JetSetLS 设置的上下文句柄

  • pvArg2NULL

  • pvContextNULL

  • ulUnusedNULL

如果回调返回错误,则将忽略该错误。

JET_cbtypFreeTableLS
0x00000400

由于应用程序需要清理与数据库引擎正在释放的表关联的本地存储的上下文句柄,将发生此回调。 有关详细信息,请参阅 JetSetLS

此回调原因的函数指针通过 JetSetSystemParameter 配置 JET_paramRuntimeCallback

回调参数将具有以下值:

  • sesid:JET_sesidNil

  • dbid:JET_dbidNil

  • tableid:JET_tableidNil

  • pvArg1:使用 JetSetLS 设置的上下文句柄。

  • pvArg2NULL

  • pvContextNULL

  • ulUnusedNULL

如果回调返回错误,则将忽略该错误。

要求

要求

客户端

需要 Windows Vista 或 Windows XP。

服务器

需要 Windows Server 2008 或 Windows Server 2003。

标头

在 Esent.h 中声明。

另请参阅

JET_CALLBACK