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。 发生此错误的原因是
|
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