JetGetColumnInfo 函数

适用于: Windows |Windows Server

JetGetColumnInfo 函数

JetGetColumnInfo 函数检索有关列的信息。

    JET_ERR JET_API JetGetColumnInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in          const tchar* szTableName,
      __in          const tchar* szColumnName,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

parameters

sesid

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

dbid

szTableName 一起标识包含从中检索信息的列的表。

szTableName

dbid 一起标识包含从中检索信息的列的表。

szColumnName

要为其提取信息的列的名称。

pvResult

指向将接收信息的缓冲区的指针。 缓冲区的类型取决于 InfoLevel。 调用方必须配置为适当对齐缓冲区。

cbMax

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

InfoLevel

要为 szColumnName 指定的列检索的信息类型。 pvResult 中存储的数据的格式取决于此参数。 有关临时表的架构,请参阅 JET_COLUMNLIST

这些 InfoLevel 的 区别如下:

  • JET_ColInfoListSortColumnid将按 columnid 对临时表进行排序。

  • JET_ColInfoListCompact将压缩输出。 有关压缩输出的详细信息,请参阅 JET_COLUMNLIST

以下选项可用于此参数。

含义

JET_ColInfo

JET_ColInfo和JET_ColInfoByColid都检索相同的信息。 pvResult 被解释为 JET_COLUMNDEF,并相应地填充 JET_COLUMNDEF 结构的字段。

JET_ColInfoBase

pvResult 被解释为 JET_COLUMNBASE 结构。 这类似于 JET_COLUMNDEF 结构。 如果此函数成功,则使用适当的值填充结构。 如果此函数失败,则结构包含未定义的数据。

JET_ColInfoByColid

与JET_ColInfo一样, pvResult 被解释为 JET_COLUMNDEF,只是此 InfoLevel 指示请求的列 (szColumName) 不是字符串列名称,而是指向 JET_COLUMNID的指针。

JET_ColInfoList

pvResult 被解释为 JET_COLUMNLIST 结构。 如果此函数成功,则使用适当的值填充结构。 将打开临时表,并由 JET_COLUMNLIST 结构的 tableid 成员标识。 必须使用 JetCloseTable 关闭该表。 如果此函数失败,则结构包含未定义的数据。

JET_ColInfoListCompact

与 JET_ColInfoList 相同。

JET_ColInfoListSortColumnid

与 JET_ColInfoList 相同;但是,生成的表按 columnid 而不是列名排序。

JET_ColInfoSysTabCursor

JET_ColInfoSysTabCursor已弃用,使用它将返回JET_errFeatureNotAvailable。

JET_ColInfoBaseByColId

与JET_ColInfoBase一样, pvResult 被解释为 JET_COLUMNBASE,但此 InfoLevel 指示请求的列 (szColumName) 不是字符串列名称,而是指向 JET_COLUMNID的指针。

Windows Vista: 此值在 Windows Vista 中引入。

JET_ColInfoGrbitNonDerivedColumnsOnly

仅当表派生自模板) 时,才返回 (的非派生列。

当基本 InfoLevel JET_ColInfoList时,此值可以在逻辑上或放入 InfoLevel 中。

Windows Vista: 此值引入 Windows Vista。

JET_ColInfoGrbitMinimalInfo

仅返回每列的列名和 columnid。

当基本 InfoLevel JET_ColInfoList时,此值可以在逻辑上或放入 InfoLevel 中。

Windows Vista: 此值在 Windows Vista 中引入。

JET_ColInfoGrbitSortByColumnid

按 columnid 对返回的列列表进行排序 (默认设置是按列名) 对列表进行排序。

当基本 InfoLevel JET_ColInfoList时,此值可以在逻辑上或放入 InfoLevel 中。

Windows Vista: 此值在 Windows Vista 中引入。

返回值

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

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errColumnNotFound

在表中找不到名为 szColumnName 的列。

JET_errFeatureNotAvailable

指定了错误的 InfoLevel

JET_errInvalidName

如果出现以下问题,可能会返回此错误:

  • szTableName 指定了错误的名称。

  • szColumnName 指定了错误的名称。

JET_errInvalidParameter

如果出现以下问题,可能会返回此错误:

  • 指定了错误的 InfoLevel

  • 传入了 NULL szTableName

  • 缓冲区太小。

备注

JetGetTableColumnInfoJetGetColumnInfo 都检索有关列的信息。 它们之间的区别在于如何标识表:

  • JetGetTableColumnInfotableid 标识表

  • JetGetColumnInfo 通过 dbidszTableName 组合标识表。

使用 JET_ColInfoList、JET_ColInfoListSortColumnid 或 JET_ColInfoListCompact 检索数据时,将打开一个临时表。 临时表包含数据, JET_COLUMNLIST 结构包含足够的信息来遍历临时表。 必须使用 JetCloseTable 关闭临时表。

要求

要求

客户端

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

服务器

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

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

Unicode

实现为 JetGetColumnInfoW (Unicode) 和 JetGetColumnInfoA (ANSI) 。

另请参阅

错误处理参数
可扩展存储引擎错误
JET_COLUMNBASE
JET_COLUMNDEF
JET_COLUMNID
JET_COLUMNLIST
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetGetTableColumnInfo