JetAttachDatabase2 函数
适用于: Windows |Windows Server
JetAttachDatabase2 函数
JetAttachDatabase2 函数附加用于数据库实例的数据库文件,并指定该数据库的最大大小。 若要使用数据库,随后需要使用 JetOpenDatabase 打开该数据库。
JET_ERR JET_API JetAttachDatabase2(
__in JET_SESID sesid,
__in const tchar* szFilename,
__in const unsigned long cpgDatabaseSizeMax,
__in JET_GRBIT grbit
);
参数
sesid
将用于 API 调用的数据库会话上下文。
szFilename
要附加的数据库的名称。
cpgDatabaseSizeMax
数据库的最大大小(以数据库页为单位)。 默认数据库页大小为 4 KB,可以在创建数据库之前使用 JetSetSystemParameter 函数进行更改。
传递零意味着数据库引擎没有强制实施最大值。
grbit
包含用于此调用的选项的一组位,其中包括以下零个或多个内容:
值 |
含义 |
---|---|
JET_bitDbDeleteCorruptIndexes |
如果已设置 JET_paramEnableIndexChecking ,则将删除 Unicode 数据上的所有索引。 有关更多详细信息,请参阅“备注”部分。 |
JET_bitDbDeleteUnicodeIndexes |
无论设置JET_paramEnableIndexChecking如何,都将删除 Unicode 数据上的所有索引。 有关更多详细信息,请参阅“备注”部分。 |
JET_bitDbReadOnly |
防止对数据库进行修改。 |
JET_bitDbUpgrade |
保留供将来使用。 |
返回值
函数返回 JET_ERR 错误代码之一。 下面是最常返回的 。 (有关此 API 错误的完整列表,请参阅 可扩展存储引擎错误代码。)
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBackupInProgress |
备份期间不允许附加数据库。 |
JET_errDatabaseFileReadOnly |
szFilename 指定的数据库文件必须是可写的。 不能设置 Read-Only 属性,并且正在运行的进程必须具有足够的权限才能写入文件。 |
JET_errDatabaseInUse |
数据库文件已由另一个进程打开。 |
JET_errDatabaseInvalidPath |
szFilename 中提供了无效的路径。 szFilename 必须是非 NULL 且引用有效路径。 |
JET_errDatabaseSharingViolation |
数据库文件已由其他会话附加。 |
JET_errFileNotFound |
szFilename 中给定的文件不存在。 |
JET_errPrimaryIndexCorrupted |
主索引出错。 这可能是由于物理损坏 (,例如磁盘损坏或内存损坏) 。 将上次修改的数据库附加到较旧的操作系统上,并且主索引位于包含 Unicode 数据的列上时,也可能返回它。 有关基于 Unicode 数据的索引的详细信息,请参阅备注。 |
JET_errSecondaryIndexCorrupted |
辅助索引出现错误。 这可能是由于物理损坏 (,例如磁盘损坏或内存损坏) 。 将上次修改的数据库附加到较旧的操作系统上,并且辅助索引位于包含 Unicode 数据的列上时,也可能返回该索引。 有关基于 Unicode 数据的索引的详细信息,请参阅备注。 使用以下命令使用脱机实用工具对数据库进行碎片整理时,将完全重新生成辅助索引: esentutl -d。 |
JET_errTooManyAttachedDatabases |
每个实例只能附加有限数量的数据库。 目前限制为每个实例七个数据库。 |
JET_wrnDatabaseAttached |
一个非致命警告,指示此会话已附加数据库文件。 |
备注
使用 JetDetachDatabase 或 JetDetachDatabase2 分离数据库文件。
有关说明,请参阅 JetAttachDatabase 。
要求
要求 | 值 |
---|---|
客户端 |
需要 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 |
作为 JetAttachDatabase2W (Unicode) 和 JetAttachDatabase2A (ANSI) 实现。 |
另请参阅
可扩展存储引擎文件
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter