JetGetTableInfo 函数
适用于: Windows |Windows Server
JetGetTableInfo 函数
JetGetTableInfo 函数检索有关数据库中表的各种信息。
JET_ERR JET_API JetGetTableInfo(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
参数
sesid
用于 API 调用的数据库会话上下文。
tableid
信息应用于的表。
pvResult
指向将接收信息的缓冲区的指针。 缓冲区的类型取决于 InfoLevel。 调用方负责适当地对齐缓冲区。
cbMax
在 pvResult 中传递的缓冲区的大小(以字节为单位)。
InfoLevel
将为 tableid 指定的表检索的信息类型。 pvResult 中存储的数据的格式取决于 InfoLevel。
可以为此参数设置以下选项:
值 |
含义 |
---|---|
JET_TblInfo |
pvResult 被解释为 JET_OBJECTINFO 结构。 如果该方法成功 ,JET_OBJECTINFO结构 将填充相应的数据。 如果失败,则表示内容未定义。 |
JET_TblInfoDbid |
pvResult 被视为两个 JET_DBID 对象的数组。 拥有表的数据库的数据库标识符存储在此数组中两次。 |
JET_TblInfoDumpTable |
JET_TblInfoDumpTable已弃用。 API 将返回JET_errFeatureNotAvailable。 |
JET_TblInfoName |
JET_TblInfoName检索表的名称并将其存储在 pvResult 中。 如果缓冲区太小,则行为未定义。 |
JET_TblInfoMostMany |
JET_TblInfoMostMany检索表的名称并将其存储在 pvResult 中。 如果缓冲区太小,则行为未定义。 |
JET_TblInfoOLC |
JET_TblInfoOLC已弃用。 API 将返回JET_errFeatureNotAvailable。 |
JET_TblInfoRvt |
JET_TblInfoRvt已弃用。 API 将返回JET_errQueryNotSupported。 |
JET_TblInfoResetOLC |
JET_TblInfoResetOLC已弃用。 API 将返回JET_errFeatureNotAvailable。 |
JET_TblInfoSpaceAlloc |
pvResult 被解释为两个 ULONG 的数组:
|
JET_TblInfoSpaceAvailable |
pvResult 被解释为 ULONG。 ULONG 是表、其索引和长值树中可用页数的总和。 |
JET_TblInfoSpaceOwned |
pvResult 被解释为 ULONG。 ULONG 是表拥有的页数的总和,表 (包括其索引,长值树及其中任何可用页) 。 |
JET_TblInfoSpaceUsage |
API 的行为取决于传递给 API 的缓冲区的大小。 两个 cbMax 值必须至少 ( 2 * 大小 ( ULONG ) ) 。
|
JET_TblInfoTemplateTableName |
pvResult 被解释为字符串缓冲区。 缓冲区必须至少JET_cbNameMost + 1,包括终止 NULL。 如果表是派生表,则将使用派生表继承其 DDL 的表的名称填充缓冲区。 如果该表不是派生表,则缓冲区将包含一个空字符串。 |
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBufferTooSmall |
缓冲区太小。 |
JET_errFeatureNotAvailable |
指定了已弃用 的 InfoLevel 。 |
JET_errInvalidBufferSize |
缓冲区的大小不正确。 |
JET_errInvalidOperation |
传入的表是一个临时表,无法为临时表检索请求的 InfoLevel 。 |
JET_errObjectNotFound |
传入的表是一个临时表,无法为临时表检索请求的 InfoLevel 。 |
JET_errQueryNotSupported |
不支持 InfoLevel。 |
JET_errTableInUse |
该表正由另一个数据库操作使用。 |
JET_errTableLocked |
表被另一个数据库操作锁定。 |
JET_wrnTableInUseBySystem |
系统正在使用该表。 此警告不严重。 |
备注
某些信息对临时表无效 (请参阅 JetOpenTempTable) 。
表统计信息包括聚集索引中的记录数和页数 (即包含记录数据的索引) 。 索引统计信息使用 JetGetIndexInfo 或 JetGetTableIndexInfo 按名称单独访问。
要求
要求 | 值 |
---|---|
客户端 |
需要 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 |
实现为 JetGetTableInfoW (Unicode) 和 JetGetTableInfoA (ANSI) 。 |
另请参阅
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JetGetIndexInfo
JetGetObjectInfo
JetGetTableIndexInfo
JetOpenTempTable