JetGotoSecondaryIndexBookmark 函数

适用于: Windows |Windows Server

JetGotoSecondaryIndexBookmark 函数

JetGotoSecondaryIndexBookmark 函数将光标定位到与指定的辅助索引书签关联的索引项。 辅助索引书签必须与最初从中检索到它的同一个表上的同一索引一起使用。 可以使用 JetGotoSecondaryIndexBookmark 检索索引条目的辅助索引书签。

Windows XP:JetGotoSecondaryIndexBookmark 在 Windows XP 中引入。

    JET_ERR JET_API JetGotoSecondaryIndexBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvSecondaryKey,
      __in          unsigned long cbSecondaryKey,
      __in_opt      void* pvPrimaryBookmark,
      __in          unsigned long cbPrimaryBookmark,
      __in          const JET_GRBIT grbit
    );

参数

sesid

用于此调用的会话。

tableid

用于此调用的游标。

pvSecondaryKey

包含用于定位光标的辅助键的缓冲区。

cbSecondaryKey

缓冲区中辅助密钥的大小。

pvPrimaryBookmark

包含用于定位光标的主键书签的缓冲区。

cbPrimaryBookmark

缓冲区中主键书签的大小。

grbit

一组指定以下选项的零个或多个位。

含义

JET_bitBookmarkPermitVirtualCurrency

如果无法再找到索引项,游标将保留之前找到该索引项的位置。 操作仍会失败并出现JET_errRecordDeleted;但是,相对于现在缺少的索引项,可以移动到下一个或上一个索引项。

返回值

此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errClientRequestToStopJetService

由于调用 JetStopService,与会话关联的实例上的所有活动都已停止,因此操作无法完成。

JET_errInstanceUnavailable

操作无法完成,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。

Windowsxp: 此返回值在 Windows XP 中引入。

JET_errInvalidBookmark

提供的辅助索引书签无效。 发生此错误的原因可能是辅助密钥为零或辅助密钥缓冲区指针为 NULL。 发生此错误的原因是

  • 当前辅助索引没有唯一性约束,并且提供的书签的大小为零。

  • 书签缓冲区指针为 NULL

JET_errNoCurrentIndex

游标当前不在辅助索引上。 当游标当前未使用辅助索引时,转到辅助索引书签没有意义。 当光标不在辅助索引上时,应使用 JetGotoBookmark

JET_errNotInitialized

操作无法完成,因为与会话关联的实例尚未初始化。

JET_errRecordDeleted

找不到与辅助索引书签关联的索引项。

JET_errRestoreInProgress

该操作无法完成,因为正在对与会话关联的实例执行还原操作。

JET_errSessionSharingViolation

同一会话不能同时用于多个线程。

Windowsxp: 此返回值在 Windows XP 中引入。

JET_errTermInProgress

操作无法完成,因为正在关闭与会话关联的实例。

如果此函数成功,光标将定位在与指定的辅助索引书签关联的索引项上。 如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则会取消该索引范围。 如果已构造搜索键以供游标使用,则将删除该搜索键。 不会更改数据库状态。

如果此函数失败,除非返回JET_errRecordDeleted并指定JET_bitBookmarkPermitVirtualCurrency,否则游标的位置保持不变。 在这种情况下,游标将定位到与指定辅助索引书签关联的索引项的位置。 游标可以相对于该位置移动,但仍不在有效的索引条目上。

如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则会取消该索引范围。 如果已构造搜索键以供游标使用,则将删除该搜索键。 在任何情况下,数据库状态都不会发生更改。

要求

要求

客户端

需要 Windows Vista 或 Windows XP。

服务器

需要 Windows Server 2008 或 Windows Server 2003。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetSecondaryIndexBookmark
JetGotoBookmark
JetStopService