JetSeek 函数

适用于: Windows |Windows Server

JetSeek 函数

JetSeek 函数有效地将游标定位到与该游标中的搜索键指定的搜索条件和指定的不等式匹配的索引项。 以前必须使用 JetMakeKey 构造搜索键。

    JET_ERR JET_API JetSeek(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_GRBIT grbit
    );

parameters

sesid

用于此调用的会话。

tableid

用于此调用的游标。

grbit

包含用于此调用的选项的一组位。 Grbit 必须是非零值,并且必须包括下表中列出的一个或多个值。

含义

JET_bitCheckUniqueness

如果可以廉价地确定只有一个索引项与搜索键匹配,则会返回一个特殊的错误代码JET_wrnUniqueKey。

除非还指定了JET_bitSeekEQ,否则将忽略此选项。

此选项仅适用于 Windows Server 2003 及更高版本。

JET_bitSeekEQ

光标将位于最接近索引开头且与搜索键完全匹配的索引条目处。 索引的开头是移动到该索引中的第一条记录时找到的索引项。 索引的开头与索引的低端不同,该低端可能会根据索引中键列的排序顺序而更改。

将此选项与使用通配符选项的 JetMakeKey 构造的搜索键一起使用是没有意义的。

JET_bitSeekGE

游标将位于最靠近索引开头的索引项处,该索引项大于或等于与搜索条件完全匹配的索引项。 索引的开头是移动到该索引中的第一条记录时找到的索引项。 索引的开头与索引的低端不同,该低端可能会根据索引中键列的排序顺序而更改。

将此选项与使用 JetMakeKey 构造的搜索键一起使用是没有意义的,该搜索键使用通配符选项用于查找最接近索引末尾的索引条目。

JET_bitSeekGT

游标将位于最接近索引开头的索引项处,该索引项大于与搜索条件完全匹配的索引项。 索引的开头是移动到该索引中的第一条记录时找到的索引项。 索引的开头与索引的低端不同,该低端可能会根据索引中键列的排序顺序而更改。

将此选项用于使用 JetMakeKey 构造的搜索键(使用通配符选项查找最接近索引开头的索引条目)没有意义。

JET_bitSeekLE

游标将位于最接近索引末尾的索引项处,该索引项小于或等于与搜索条件完全匹配的索引项。 索引的末尾是移动到该索引中的最后一条记录时找到的索引项。 索引的末尾与索引的高端不同,后者可能会根据索引中键列的排序顺序而更改。

将此选项用于使用 JetMakeKey 构造的搜索键(使用通配符选项查找最接近索引开头的索引条目)没有意义。

JET_bitSeekLT

游标将位于离索引末尾最近的索引项,该索引项小于与搜索条件完全匹配的索引项。 索引的末尾是移动到该索引中的最后一条记录时找到的索引项。 索引的末尾与索引的高端不同,后者可能会根据索引中键列的排序顺序而更改。

将此选项与使用 JetMakeKey 构造的搜索键一起使用是没有意义的,该搜索键使用通配符选项用于查找最接近索引末尾的索引条目。

JET_bitSetIndexRange

将自动为所有与搜索键完全匹配的键设置索引范围。 生成的索引范围与使用 JET_bitRangeInclusive 和 JET_bitRangeUpperLimit 选项调用 JetSetIndexRange 创建的索引范围相同。 有关详细信息,请参阅 JetSetIndexRange

这是一种用于发现与相同搜索条件匹配的所有索引条目的便捷方法。

除非还指定了JET_bitSeekEQ,否则将忽略此选项。

返回值

此函数允许返回此 API 中定义的任何 JET_ERRs 。 有关 Jet 错误的详细信息,请参阅 可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

对于 JetSeek,这意味着找到与搜索条件完全匹配的索引条目。

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

此错误仅由 Windows XP 和更高版本返回。

JET_errKeyNotMade

光标当前没有搜索键。 JetSeek 要求游标具有有效的搜索键,因为它会将它用于查找索引条目的搜索条件。

JET_errNotInitialized

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

JET_errRecordNotFound

找不到与搜索条件匹配的索引条目。

JET_errRestoreInProgress

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

JET_wrnSeekNotEqual

找到与搜索条件匹配的索引条目。 但是,该索引项不是完全匹配项。

JET_errSessionSharingViolation

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

此错误仅由 Windows XP 和更高版本返回。

JET_errTermInProgress

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

JET_wrnUniqueKey

只发现了一个与搜索条件完全匹配的索引条目。 仅当指定了JET_bitSeekCheckUniqueness并且确定匹配索引项是唯一与搜索条件完全匹配的索引项时,才会返回此错误。

此错误仅由 Windows Server 2003 及更高版本返回。

成功后,光标将定位在与搜索条件匹配的索引项上。 如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则会取消该索引范围。 如果已为游标构造搜索键,则将删除该搜索键。 不会更改数据库状态。 如果多个索引条目具有相同的值,则始终选择最接近索引开头的条目。

失败时,除非返回JET_errRecordNotFound,否则游标的位置将保持不变。 在这种情况下,游标将定位到与该游标中的搜索键指定的搜索条件匹配的索引项和指定的不相等的位置。 游标可以相对于该位置移动,但仍不在有效的索引条目上。 如果记录已准备好进行更新,则将取消该更新。 如果某个索引范围有效,则会取消该索引范围。 如果已为游标构造搜索键,则将删除该搜索键。 不会更改数据库状态。

要求

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

服务器

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

另请参阅

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService