JetGetDatabaseFileInfo 函数

适用于:Windows |Windows服务器

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
    );

参数

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_DBINFOUPGRADEJET_DBINFOUPGRADE结构将填充与指定数据库相关的信息。

JET_DbInfoMisc

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

JET_DbInfoDBInUse

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

Windows XP:此值在 WINDOWS XP 中引入。

JET_DbInfoPageSize

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

Windows XP:此值在 WINDOWS XP 中引入。

JET_DbInfoCp

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

JET_DbInfoCountry

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

JET_DbInfoCollate

与JET_DbInfoCp相同。

JET_DbInfoIsam

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

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 请求时,JetGetDatabaseFileInfoJetGetDatabaseInfo 将返回此错误。

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

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

要求

客户端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

Server

需要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