JetGetDatabaseFileInfo 函数

适用于: Windows |Windows Server

JetGetDatabaseFileInfo 函数

JetGetDatabaseFileInfo 函数检索有关数据库的各种类型的信息。 当使用 JetGetDatabaseInfo) 附加或联机 (数据库时,或者当数据库或数据库引擎与 JetGetDatabaseFileInfo) 脱机 (时,可以调用此 API。

    JET_ERR JET_API JetGetDatabaseFileInfo(
      __in          const tchar* szDatabaseName,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

parameters

szDatabaseName

要从中检索信息的数据库的路径。

pvResult

指向将接收指定信息的缓冲区的指针。 缓冲区的大小(以字节为单位)在 cbMax 中传递。

如果此函数失败,则 pvResult 的内容未定义。

pvResult 中存储的信息取决于 InfoLevel

cbMax

在 pvResult 中传递的缓冲区的大小(以字节为单位)。

InfoLevel

InfoLevel 指定应检索有关指定数据库的信息类型。 它会影响 pvResult 的解释方式。 某些 InfoLevel 对象仅在脱机 (JetGetDatabaseFileInfo) 或联机 (JetGetDatabaseInfo) API 版本中可用。

如果提供的 pvResult 缓冲区太小,将返回 JET_errInvalidBufferSize 或 JET_errBufferTooSmall,具体取决于 InfoLevel

含义

JET_DbInfoFilesize

pvResult 将解释为 QWORD (8 字节) 。 以字节为单位返回数据库的大小。

JET_DbInfoUpgrade

pvResult 将被解释为 JET_DBINFOUPGRADE。 将使用与指定数据库相关的信息填充 JET_DBINFOUPGRADE 结构。

JET_DbInfoMisc

pvResult 将被解释为 JET_DBINFOMISCJET_DBINFOMISC 结构将填充与指定数据库相关的信息。

JET_DbInfoDBInUse

pvResult 将被解释为 BOOL (4 字节) 。 这将返回数据库引擎当前是否具有任何打开或附加的数据库。

Windowsxp: 此值在 Windows XP 中引入。

JET_DbInfoPageSize

pvResult 将被解释为无符号的 long。 这将返回数据库的页大小(以字节为单位)。

Windowsxp: 此值在 Windows XP 中引入。

JET_DbInfoCp

尚不支持这些 InfoLevel, 并返回默认值。 请勿使用这些 InfoLevel

JET_DbInfoCountry

尚不支持这些 InfoLevel, 并返回默认值。 请勿使用这些 InfoLevel

JET_DbInfoCollate

与 JET_DbInfoCp 相同。

JET_DbInfoIsam

这些 InfoLevel 已弃用,当前不受支持。 请勿使用这些 InfoLevel

JET_DbInfoConnect

与 JET_DbInfoIsam 相同。

JET_DbInfoFileType

Windows Vista: InfoLevel 值是在 Windows Vista 中引入的。

pvResult 将被视为指向 DWORD 的指针。 返回枚举值,指示引擎将其视为哪种类型的文件。 下表列出了文件类型。 有关这些类型的文件及其在引擎中的用法的详细信息,请参阅 可扩展存储引擎文件

含义

JET_filetypeUnknown

文件类型未知,或者不是 ESE 文件类型。

JET_filetypeDatabase

该文件是一个数据库文件。

JET_filetypeLog

该文件是事务日志文件。

JET_filetypeCheckpoint

该文件是检查点文件。

JET_filetypeTempDatabase

文件是临时数据库文件。

返回值

此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误错误处理参数

返回代码

说明

JET_errSuccess

操作已成功完成。

JET_errFeatureNotAvailable

请求的 InfoLevel 已JET_DbInfoIsam。 此操作不受支持。

JET_errBufferTooSmall

cbMax 中提供的缓冲区太小,无法获取所需的信息。

JET_errInvalidBufferSize

cbMax 中给定的缓冲区不是所需信息的正确大小。

JET_errInvalidParameter

提供的其中一个参数包含意外值,或者多个参数值的组合产生了意外的结果。 如果提供的 DBID 不是) 数据库附加的有效 (, JetGetDatabaseInfo 将返回此错误。 当该函数版本不支持 InfoLevel 请求的 InfoLevel 时,JetGetDatabaseFileInfoJetGetDatabaseInfo 将返回此错误。

如果此函数成功,则请求的数据将在输出缓冲区中返回。

如果此函数失败,则输出缓冲区将处于未定义状态。

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 专业版。

服务器

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

标头

在 Esent.h 中声明。

Library

使用 ESENT.lib。

DLL

需要ESENT.dll。

Unicode

实现为 JetGetDatabaseFileInfoW (Unicode) 和 JetGetDatabaseFileInfoA (ANSI) 。

另请参阅

JET_ERR
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseInfo