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 |
如果出现以下问题,可能会返回此错误:
|
JET_errInvalidParameter |
如果出现以下问题,可能会返回此错误:
|
备注
JetGetTableColumnInfo 和 JetGetColumnInfo 都检索有关列的信息。 它们之间的区别在于如何标识表:
JetGetTableColumnInfo 按 tableid 标识表。
JetGetColumnInfo 通过 dbid 和 szTableName 组合标识表。
使用 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