JetGetRecordPosition 函数

适用于: Windows |Windows Server

JetGetRecordPosition 函数

JetGetRecordPosition 函数以JET_RECPOS结构的形式返回当前索引中当前记录的小数部分位置。 此结构根据当前记录之前的索引条目的近似数目和索引中的大致总条目数来描述小数位置。

    JET_ERR JET_API JetGetRecordPosition(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_RECPOS* precpos,
      __in          unsigned long cbRecpos
    );

parameters

sesid

用于此调用的会话。

tableid

要用于此调用的游标。

precpos

用于获取当前记录在当前索引中的位置的分数的说明。

cbRecpos

precpos 上分配的内存大小。

返回值

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

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errNotInitialized

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

Windows 2000: Windows 2000 操作系统不会返回此错误。

JET_errInvalidParameter

precpos 处分配的内存大小不够大。

JET_errNoCurrentRecord

光标当前不在记录上,无法返回位置。

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

Windows 2000: Windows 2000 操作系统不会返回此错误。

JET_errTermInProgress

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

成功后,索引中当前记录之前的大致索引条目数将在 precpos-centriesLT> 中返回。 1 以 precpos-centriesInRange> 返回。 索引中的大致条目数以 precpos-centriesTotal> 返回。

失败时,不会对 precpos 中分配的内存进行更改。

备注

当表上持续发生更新时,此操作将返回不同的数据。 值更改并不总是符合基于更新知识的预期,因为这些值是基于索引的物理属性的近似值。 事务隔离不适用于 JetGetRecordPosition 中的位置,因为这些值依赖于非事务隔离索引的物理属性。

JET_RECPOS 不应用于描述表中的记录或将记录重新定位到靠近现有记录的位置。 相反,应检索现有记录的书签,然后使用书签重新定位同一记录。

要求

要求

客户端

需要 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
JetGotoPosition
JetStopService