JetGetObjectInfo 函数
适用于: 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
);
parameters
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 中声明。 |
Library |
使用 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