JetGetDatabaseInfo 函数
适用于: Windows |Windows Server
JetGetDatabaseInfo 函数
JetGetDatabaseInfo 函数检索有关数据库的各种类型的信息。 当使用 JetGetDatabaseInfo) 附加或联机 (数据库或数据库引擎脱机 (JetGetDatabaseFileInfo) 时,可以调用此 API。
JET_ERR JET_API JetGetDatabaseInfo(
__in JET_SESID sesid,
__in JET_DBID dbid,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
parameters
sesid
用于此调用的会话。
dbid
数据库从中检索信息JET_DBID。
pvResult
指向将接收指定信息的缓冲区的指针。 缓冲区的大小(以字节为单位)以 cbMax 传递。
失败时, pvResult 的内容未定义。
pvResult 中存储的信息取决于 InfoLevel。
cbMax
在 pvResult 中传递的缓冲区的大小(以字节为单位)。
InfoLevel
InfoLevel 指定应检索有关指定数据库的信息类型。 它会影响 pvResult 的解释方式。 某些 InfoLevel 仅在 脱机 (JetGetDatabaseFileInfo) 或联机 (JetGetDatabaseInfo) 版本的 API 中可用。
如果提供的 pvResult 缓冲区太小,将根据 InfoLevel 返回JET_errInvalidBufferSize或JET_errBufferTooSmall。
值 |
含义 |
---|---|
JET_DbInfoCollate |
尚不支持并返回默认值。 请勿使用。 |
JET_DbInfoConnect |
这些 InfoLevel 已弃用,当前不受支持。 请勿使用。 |
JET_DbInfoCountry |
尚不支持并返回默认值。 请勿使用。 |
JET_DbInfoCp |
尚不支持并返回默认值。 请勿使用。 |
JET_DbInfoFilename |
pvResult 将解释为字符串缓冲区 (字符 *) 。 建议使用MAX_PATH缓冲区,但不是必需的。 如果缓冲区不够长,将返回JET_errBufferTooSmall。 字符串将填充此 DBID 的数据库路径。 |
JET_DbInfoFilesize |
pvResult 将解释为 DWORD (4 个字节) 。 以页为单位返回数据库的大小。 |
JET_DbInfoIsam |
这些 InfoLevel 已弃用,当前不受支持。 请勿使用。 |
JET_DbInfoLCID |
(Windows XP 及更高版本) 此 InfoLevel 最初指定为:JET_DbInfoLangid (Windows 2000) pvResult 将被解释为 long。 这会返回与此数据库关联的 LCID (区域设置标识符) 。 |
JET_DbInfoMisc |
pvResult 将解释为 JET_DBINFOMISC。 JET_DBINFOMISC结构将填充与指定数据库相关的信息。 |
JET_DbInfoOptions |
pvResult 将被解释为 JET_GRBIT (DWORD) 。 这会返回是否在独占模式下打开数据库。 如果数据库处于独占模式,JET_bitDbExclusive将在提供的 JET_GRBIT 中设置,否则将设置为零。 请注意,不返回 JetAttachDatabase 和 JetOpenDatabase 的其他数据库 grbit 选项。 |
JET_DbInfoPageSize |
仅在 Windows XP 及更高版本上可用。 pvResult 将被解释为无符号长。 这将返回数据库的页大小(以字节为单位)。 |
JET_DbInfoSpaceAvailable |
pvResult 将解释为 DWORD。 这会以页为单位返回数据库的可用空间。 |
JET_DbInfoSpaceOwned |
pvResult 将解释为 DWORD。 这会以页为单位返回数据库拥有的空间。 |
JET_DbInfoTransactions |
pvResult 将被解释为 long。 这将返回一个大于事务可嵌套到的最大级别的值。 如果以嵌套方式 (调用 JetBeginTransaction ,即在同一会话中,在没有提交或回滚) 此值的次数的情况下,在上次调用时,将从 JetBeginTransaction 返回JET_errTransTooDeep。 请注意,Windows 2000、Windows XP 和 Windows Server 2003 中的值为 7。 |
JET_DbInfoVersion |
pvResult 将被解释为 long。 这会返回数据库引擎的本机主版本。 此值是 windows 2000、Windows XP 和 Windows Server 2003 的0x620。 |
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBufferTooSmall |
cbMax 中给定的缓冲区大小太小, (或) 不正确,无法保存所需的信息。 |
JET_errFeatureNotAvailable |
请求的 InfoLevel 已JET_DbInfoIsam。 此操作不受支持。 |
JET_errInvalidBufferSize |
cbMax 中给定的缓冲区大小太小, (或) 不正确,无法保存所需的信息。 |
JET_errInvalidParameter |
提供的其中一个参数包含意外值或包含一个值,当与另一个参数的值组合时,该值没有意义。 如果提供的JET_DBID不是) 数据库附加的有效 (,JetGetDatabaseInfo 将返回此错误。 当该函数版本不支持 InfoLevel 请求的 InfoLevel 时,JetGetDatabaseFileInfo 和 JetGetDatabaseInfo 将返回此错误。 |
成功后,请求的数据将在输出缓冲区中返回。
失败时,输出缓冲区将处于未定义状态。
要求
要求 | 值 |
---|---|
客户端 |
需要 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 |
实现为 JetGetDatabaseInfoW (Unicode) 和 JetGetDatabaseInfoA (ANSI) 。 |
另请参阅
JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo