适用于: Windows |Windows Server
JetGetObjectInfo 函数
JetGetObjectInfo 函数检索有关数据库对象的信息。 目前仅支持表。 JetGetTableInfo 可用于获取 比 JetGetObjectInfo 更多的信息。
JET_ERR JET_API JetGetObjectInfo(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in JET_OBJTYP objtyp,
__in_opt const tchar* szContainerName,
__in_opt const tchar* szObjectName,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
参数
sesid
要使用的数据库会话上下文。
dbid
从中检索信息的数据库。
objtyp
包含要检索的信息的对象。 目前,仅支持JET_objtypNil和JET_objtypTable,这两者的行为都相同。 仅检索表。
szContainerName
此参数保留供将来使用并传递 NULL。 要检索信息的对象的类型的名称。
szObjectName
包含要检索的信息的对象的名称。 当 InfoLevel 使用JET_ObjInfoList或JET_ObjInfoListNoStats选项检索所有对象的列表时,此值应为 NULL 或空字符串。
目前仅支持表名。
pvResult
指向接收指定信息的缓冲区的指针。
缓冲区的大小(以字节为单位)在 cbMax 中传递。 失败时, pvResult 的内容未定义。
存储在 pvResult 中的信息取决于 InfoLevel。
cbMax
在 pvResult 中传递的缓冲区的大小(以字节为单位)。
InfoLevel
指定要为指定对象检索的信息类型。 它会影响 pvResult 的解释方式。
可为此参数设置以下选项。
价值 |
含义 |
---|---|
JET_ObjInfo |
pvResult 被解释为 JET_OBJECTINFO 结构。 JET_OBJECTINFO结构填充了与 szObjectName 中命名的对象相关的信息。 如果调用方不想知道对象的记录数和页数,请考虑使用JET_ObjInfoNoStats信息级别,这可能更快,因为不包括统计信息。 |
JET_ObjInfoList |
pvResult 被解释为 JET_OBJECTLIST 结构。 检索有关所有对象的信息。 将创建临时表,并在 JET_OBJECTLIST 结构中描述了遍历临时表所需的信息。 有关详细信息,请参阅 JET_OBJECTLIST。 如果调用方不想知道对象的记录数和页数,请考虑使用JET_ObjInfoListNoStats,这可能更快。 |
JET_ObjInfoListACM |
已弃用,当前不受支持。 |
JET_ObjInfoListNoStats |
pvResult 被解释为 JET_OBJECTLIST 结构。 检索有关所有对象的信息。 将创建临时表,并在 JET_OBJECTLIST 结构中描述了遍历临时表所需的信息。 有关详细信息,请参阅 JET_OBJECTLIST。 JET_ObjInfoListNoStats与JET_ObjInfoList相同,不同之处在于不会更新报告记录数(columnidcRecord)和页面(columnidcPage)的列。 |
JET_ObjInfoMax |
pvResult 被解释为 JET_OBJECTINFO。 对象的最大大小在页面中。 目前仅返回表。 |
JET_ObjInfoNoStats |
pvResult 被解释为 JET_OBJECTINFO。 仅检索有关 szObjectName 中给定的对象的信息。 JET_OBJECTINFO结构将填充与 szObjectName 中命名的对象相关的信息。 JET_ObjInfoNoStats与JET_ObjInfo相同,但报告记录数和页数的字段设置为零。 |
JET_ObjInfoRulesLoaded |
已弃用,当前不受支持。 |
JET_ObjInfoSysTabCursor |
已弃用,当前不受支持。 |
JET_ObjInfoSysTabReadOnly |
已弃用,当前不受支持。 |
返回值
此函数使用以下返回代码之一返回 JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
作已成功完成。 |
JET_errBufferTooSmall |
cbMax 中给定的缓冲区大小太小,无法保存所需的信息。 |
JET_errInvalidName |
szObjectName 或 szContainerName 中提供了无效的名称。 |
JET_errInvalidParameter |
给定了错误的参数。 有可能将错误的级别传递到 InfoLevel。 |
注解
如果 JetGetObjectInfo 成功创建临时表(例如,JET_ObjInfoList或JET_ObjInfoNoStats),则调用方负责使用 JetCloseTable 关闭临时表。
JetGetObjectInfo 目前仅支持检索有关表的信息。
要求
要求 | 价值 |
---|---|
客户端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
服务器 |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
图书馆 |
使用 ESENT.lib。 |
DLL |
需要 ESENT.dll。 |
Unicode |
实现为 JetGetObjectInfoW (Unicode) 和 JetGetObjectInfoA (ANSI)。 |
另请参阅
JET_ERR
JET_GRBIT
JET_OBJTYP
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetCloseTable
JetGetTableInfo