JetGetIndexInfo 函数

适用于: Windows |Windows Server

JetGetIndexInfo 函数

JetGetIndexInfo 函数检索有关索引的信息。

    JET_ERR JET_API JetGetIndexInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in          const tchar* szIndexName,
      __out         void* pvResult,
      __in          unsigned long cbResult,
      __in          unsigned long InfoLevel
    );

参数

sesid

用于 API 调用的数据库会话上下文。

dbid

要用于 API 调用的数据库标识符。

szTableName

包含索引的表的名称,其中包含要检索的信息。

szIndexName

要检索的信息的索引的名称。

pvResult

指向将接收所需信息的缓冲区的指针。 缓冲区应对齐以保存所需的类型。 缓冲区的类型取决于 InfoLevel 参数。

cbResult

作为 pvResult 传递的缓冲区的大小(以字节为单位)。

InfoLevel

将存储在 pvResult 中的信息。 以下选项可用于此参数。

价值 Meaning

JET_IdxInfo

pvResult 被解释为 JET_INDEXLIST 结构。 成功后, JET_INDEXLIST 结构将接收有关索引的信息。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoCount

pvResult 被解释为 ULONG。 成功后,ULONG 将保留指定表上的索引计数。 szIndexName 将被忽略。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoIndexId

pvResult 被解释为 JET_INDEXID。 成功后, JET_INDEXID 结构将接收有关索引的信息。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoLangid

JET_IdxInfoLangid已弃用。 请改用 JET_IdxInfoLCID 和 LANGIDFROMLCID 宏。

JET_IdxInfoLCID

pvResult 被解释为 LCID。 成功后,LCID 保留索引的区域设置标识符。 失败时, pvBuffer 的内容未定义。

Windows XP:Windows XP中引入了 JET_IdxInfoLCID。

JET_IdxInfoList

pvResult 被解释为 JET_INDEXLIST 结构。 成功后, JET_INDEXLIST 结构将接收有关索引的信息。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoOLC

JET_IdxInfoOLC已过时。

JET_IdxInfoResetOLC

JET_IdxInfoResetOLC已过时。

JET_IdxInfoSpaceAlloc

pvResult 被解释为 ULONG。 成功后,ULONG 保存索引的目标密度(ulDensity)。 有关 ulDensity 的说明,请参阅JET_INDEXCREATE。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoSysTabCursor

JET_IdxInfoSysTabCursor已过时。

JET_IdxInfoVarSegMac

pvResult 被解释为 USHORT。 成功后,USHORT 保留创建索引时使用的 cbVarSegMac 的值。 有关 cbVarSegMac 的说明,请参阅JET_INDEXCREATE。 失败时, pvBuffer 的内容未定义。

JET_IdxInfoKeyMost

pvResult 被解释为 USHORT。 成功后,USHORT 保留创建索引时使用的 cbKeyMost 的值。 有关 cbKeyMost 的说明,请参阅JET_INDEXCREATE。 失败时, pvBuffer 的内容未定义。

Windows Vista:Windows Vista中引入了JET_IdxInfoKeyMost。

JET_IdxInfoCreateIndex

pvResult 被解释为 JET_INDEXCREATE 结构。 失败时, pvBuffer 的内容未定义。

Windows 7:Windows 7中引入了 JET_IdxInfoCreateIndex。

JET_IdxInfoCreateIndex2

pvResult 被解释为 JET_INDEXCREATE2 结构。 失败时, pvBuffer 的内容未定义。

Windows 7:Windows 7中引入了 JET_IdxInfoCreateIndex2。

JET_IdxInfoSpaceOwned pvResult 被解释为 .ULONG 成功后,保留 ULONG 索引拥有的页数。 有关详细信息,请参阅注解

Windows 11中引入了 Windows 11:JET_IdxInfoSpaceOwned

JET_IdxInfoSpaceAvail pvResult 被解释为 .ULONG 成功后,保留 ULONG 索引中可用的页数。 有关详细信息,请参阅注解

Windows 11中引入了 Windows 11:JET_IdxInfoSpaceAvail

返回值

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

返回代码

Description

JET_errSuccess

作已成功完成。

JET_errIndexNotFound

在指定的表中找不到指定的索引。

JET_wrnBufferTruncated

作为 pvResult 传入的缓冲区太小。 缓冲区的内容未定义。

注解

JetGetIndexInfoJetGetTableIndexInfo 检索有关索引的相同信息。 区别在于如何指定表。 JetGetIndexInfo 需要一个数据库(dbid)和表的名称(szTableName),而 JetGetTableIndexInfo 需要表标识符(tableid)。

索引消耗的空间由 $Used + Avail = Owned$定义。 因此,若要获取正在使用的页数,请使用公式$Owned - Avail = Used$ (可检索 JET_IdxInfoSpaceOwnedJET_IdxInfoSpaceAvail)。

Requirements

Requirement 价值

客户

需要 Windows Vista、Windows XP 或 Windows 2000 专业版。

服务器

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

在 Esent.h 中声明。

使用 ESENT.lib。

DLL

需要 ESENT.dll。

Unicode

实现为 JetGetIndexInfoW (Unicode) 和 JetGetIndexInfoA (ANSI)。

另请参阅

JET_COLUMNID JET_ERR JET_GRBIT JET_INDEXCREATE JET_INDEXCREATE2 JET_INDEXID JET_INDEXLIST JET_SESID JET_TABLEIDJetGetTableIndexInfo