适用于: 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
    );
parameters
sesid
用于 API 调用的数据库会话上下文。
dbid
用于 API 调用的数据库标识符。
szTableName
包含索引的表的名称,其中包含要检索的信息。
szIndexName
索引的名称,其中包含要检索的信息。
pvResult
指向将接收所需信息的缓冲区的指针。 缓冲区应对齐以容纳所需的类型。 缓冲区的类型取决于 InfoLevel 参数。
cbResult
作为 pvResult 传递的缓冲区的大小(以字节为单位)。
InfoLevel
将存储在 pvResult 中的信息。 以下选项可用于此参数。
| 值 | 含义 | 
|---|---|
| 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 的内容未定义。 Windowsxp: 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 将保留索引的空间使用情况。 失败时, 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: JET_IdxInfoCreateIndex2是在 Windows 7 中引入的。 | 
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
| 返回代码 | 说明 | 
|---|---|
| JET_errSuccess | 操作已成功完成。 | 
| JET_errIndexNotFound | 在指定的表中找不到指定的索引。 | 
| JET_wrnBufferTruncated | 作为 pvResult 传入的缓冲区太小。 缓冲区的内容未定义。 | 
备注
JetGetIndexInfo 和 JetGetTableIndexInfo 检索有关索引的相同信息。 不同之处在于表的指定方式。 JetGetIndexInfo 需要数据库 (dbid) 和表名称 (szTableName) ,而 JetGetTableIndexInfo 需要表标识符 (tableid) 。
要求
| 要求 | 值 | 
|---|---|
| 客户端 | 需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 | 
| 服务器 | 需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 | 
| 标头 | 在 Esent.h 中声明。 | 
| Library | 使用 ESENT.lib。 | 
| DLL | 需要ESENT.dll。 | 
| Unicode | 实现为 JetGetIndexInfoW (Unicode) 和 JetGetIndexInfoA (ANSI) 。 | 
另请参阅
              JET_COLUMNID
              JET_ERR
              JET_GRBIT
              JET_INDEXCREATE
              JET_INDEXID
              JET_SESID
              JET_TABLEID
              JetGetTableIndexInfo