JetGetTableColumnInfo 函数
适用于: Windows |Windows Server
JetGetTableColumnInfo 函数
JetGetTableColumnInfo 函数检索有关表列的信息。
JET_ERR JET_API JetGetTableColumnInfo(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in const tchar* szColumnName,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
parameters
sesid
用于 API 调用的数据库会话上下文。
tableid
包含要提取其信息的列的表。
szColumnName
要为其提取信息的列的名称。
pvResult
指向将接收信息的缓冲区的指针。 缓冲区的类型取决于 InfoLevel。 必须将调用方配置为适当地对齐缓冲区。
cbMax
在 pvResult 中传递的缓冲区的大小(以字节为单位)。
InfoLevel
将为 szColumnName 指定的列检索的信息类型。 pvResult 中存储的数据的格式取决于 InfoLevel。 有关临时表的架构,请参阅 JET_COLUMNLIST。
JET_ColInfoListSortColumnid将按 columnid 对临时表进行排序。
JET_ColInfoListCompact将压缩输出。 有关压缩输出的详细信息,请参阅 JET_COLUMNLIST。
可以为此参数设置以下选项:
值 |
含义 |
---|---|
JET_ColInfo |
pvResult 被解释为 JET_COLUMNDEF, JET_COLUMNDEF结构的字段 被适当填充。 JET_ColInfo和JET_ColInfoByColid都检索相同的信息。 |
JET_ColInfoBase |
pvResult 被解释为 JET_COLUMNBASE 结构。 这类似于 JET_COLUMNDEF 结构。 如果此函数成功,则使用适当的值填充结构。 如果此函数失败,则结构包含未定义的数据。 |
JET_ColInfoByColid |
pvResult 被解释为 JET_COLUMNDEF,但此 InfoLevel 指示请求的列 (szColumName) 不是字符串列名称,而是指向 JET_COLUMNID的指针。 JET_ColInfo和JET_ColInfoByColid都检索相同的信息。 |
JET_ColInfoList |
pvResult 被解释为 JET_COLUMNLIST 结构。 如果此函数成功,则使用适当的值填充结构。 将打开临时表,并由 JET_COLUMNLIST 的 tableid 成员标识。 必须使用 JetCloseTable 关闭该表。 如果此函数失败,则结构包含未定义的数据。 |
JET_ColInfoListCompact |
pvResult 被解释为 JET_COLUMNLIST 结构。 如果此函数成功,则使用适当的值填充结构。 将打开临时表,并由 JET_COLUMNLIST 的 tableid 成员标识。 必须使用 JetCloseTable 关闭该表。 如果此函数失败,则结构包含未定义的数据。 |
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 |
仅返回每列的列名和列 id。 当基本 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 Professional。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
Unicode |
实现为 JetGetTableColumnInfoW (Unicode) 和 JetGetTableColumnInfoA (ANSI) 。 |
另请参阅
可扩展存储引擎错误
错误处理参数
JET_COLUMNBASE
JET_COLUMNDEF
JET_COLUMNID
JET_COLUMNLIST
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetGetColumnInfo
JetGetTableColumnInfo