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_DBINFOMISC。 JET_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_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errFeatureNotAvailable |
请求的 InfoLevel 已JET_DbInfoIsam。 此操作不受支持。 |
JET_errBufferTooSmall |
cbMax 中提供的缓冲区太小,无法获取所需的信息。 |
JET_errInvalidBufferSize |
cbMax 中给定的缓冲区不是所需信息的正确大小。 |
JET_errInvalidParameter |
提供的其中一个参数包含意外值,或者多个参数值的组合产生了意外的结果。 如果提供的 DBID 不是) 数据库附加的有效 (, JetGetDatabaseInfo 将返回此错误。 当该函数版本不支持 InfoLevel 请求的 InfoLevel 时,JetGetDatabaseFileInfo 和 JetGetDatabaseInfo 将返回此错误。 |
如果此函数成功,则请求的数据将在输出缓冲区中返回。
如果此函数失败,则输出缓冲区将处于未定义状态。
要求
客户端 |
需要 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) 。 |