JetGotoPosition 函数
适用于: Windows |Windows Server
JetGotoPosition 函数
JetGotoPosition 函数将光标移动到新位置,该位置是当前索引的一小部分。 分数大致等于以下内容:
precpos-centriesLT>/precpos-centriesTotal>
此操作是为了响应用户尝试显示通过数据集开始的部分数据时收到的用户滚动框输入。
JET_ERR JET_API JetGotoPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_RECPOS* precpos
);
参数
sesid
用于此调用的会话。
tableid
要用于此调用的游标。
precpos
用于将光标定位到当前索引中的分数的说明。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errClientRequestToStopJetService |
操作无法完成,因为调用 JetStopService,与会话关联的实例上的所有活动都已停止。 |
JET_errInstanceUnavailable |
操作无法完成,因为与会话关联的实例遇到严重错误,要求撤销对所有数据的访问权限以保护该数据的完整性。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errInvalidParameter |
给定的 precpos-cbStruct> 不是 JET_RECPOS 结构的有效大小,或者 precpos-centriesLT> 大于 precpos-centriesTotal>。 |
JET_errNotInitialized |
操作无法完成,因为与会话关联的实例尚未初始化。 |
JET_errRecordNotFound |
如果索引为空,将返回此错误。 |
JET_errRestoreInProgress |
操作无法完成,因为正在对与会话关联的实例执行还原操作。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 Windowsxp: 此返回值是在 Windows XP 中引入的。 |
JET_errTermInProgress |
操作无法完成,因为正在关闭与会话关联的实例。 |
如果此函数成功,则光标将移动到当前记录,该记录是索引的一小部分,其中分数为 precpos-centriesLT> 除以 precpos-centriesTotal>。
如果此函数失败,则游标位置保持不变。
备注
此操作将游标通过表移动到以下近似点的位置:precpos-centriesLT> 除以 precpos-centriesTotal>。
当表上不断发生更新时,具有相同 JET_RECPOS 的后续调用可以将游标移动到索引中的不同位置,无论是在上一个位置之前还是之后。 事务隔离不适用于通过 JET_RECPOS 定位,因为它依赖于未进行事务隔离的索引的物理属性。
JET_RECPOS 不应用于描述表中的记录或将记录重新定位到靠近现有记录的位置。 相反,应在初始 JetGotoPosition 之后检索现有记录的书签,然后使用书签重新定位同一记录。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 专业版。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另请参阅
JET_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RECPOS
JET_SETINFO