JetGotoBookmark 函数
适用于: Windows |Windows Server
JetGotoBookmark 函数
JetGotoBookmark 函数将光标定位到与指定书签关联的记录的索引项。 书签可用于对表定义的任何索引。 可以使用 JetGetBookmark 检索记录的书签。
JET_ERR JET_API JetGotoBookmark(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in void* pvBookmark,
__in unsigned long cbBookmark
);
参数
sesid
用于此调用的会话。
tableid
要用于此调用的游标。
pvBookmark
包含用于定位光标的书签的缓冲区。
cbBookmark
缓冲区中书签的大小。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errClientRequestToStopJetService |
操作无法完成,因为调用 JetStopService 后,与会话关联的实例上的所有活动都已停止。 |
JET_errInstanceUnavailable |
操作无法完成,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errInvalidBookmark |
提供的书签无效。 这可能是因为书签的大小为零或书签缓冲区指针为 NULL。 |
JET_errNoCurrentRecord |
光标位于辅助索引上,找不到与书签关联的记录的索引项。 |
JET_errNotInitialized |
无法完成操作,因为尚未初始化与会话关联的实例。 |
JET_errRecordDeleted |
找不到与书签关联的记录。 |
JET_errRestoreInProgress |
操作无法完成,因为正在对与会话关联的实例执行还原操作。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errTermInProgress |
操作无法完成,因为正在关闭与会话关联的实例。 |
如果此函数成功,光标将定位在与指定书签关联的记录的索引条目处。 如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则将取消该索引范围。 如果已为游标构造搜索键,则将删除该搜索键。 不会更改数据库状态。
如果此函数失败,游标的位置将保持不变。 如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则将取消该索引范围。 如果已为游标构造搜索键,则将删除该搜索键。 不会更改数据库状态。
备注
有两种方法可以使用书签将光标定位到索引上。 第一种是使用书签直接定位在记录上。 当游标的当前索引是主索引时,将发生这种情况。 此技术之所以有效,是因为 ESENT 书签与关联记录的主键相同。
使用书签的第二种方法是将其放置在与该书签关联的记录相对应的辅助索引中的条目上。 在此过程中,引擎使用主索引上的书签查找实际记录。 然后,它使用记录数据和辅助索引定义将键计算到指向记录的辅助索引中。 然后,它将光标置于该键的索引项上。 如果游标当前位于一个或多个多值键列的辅助索引上,则游标将定位在对应于每个键列的第一个多值的索引项上。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 专业版。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |