我需要压缩并修复 Access 2007 .accdb 数据库文件。我知道 JRO.JetEngine 可以使用 .mdb 文件执行此操作,但我需要通过代码修复较新版本的 2007 格式。
有什么建议么?
EDIT:
事情是这样的:我发现我可以使用 COM 对象库“Microsoft Office 12 Access 数据库引擎对象库”并使用 DBEngine 类并调用其 CompactDatabse 方法。
但似乎没有地方让我提供数据库密码;似乎 Office 12 数据库引擎在任何地方都没有任何文档。
我找到了一些旧版本的 CompactDatabase 方法的文档,但这些文档对我没有任何帮助。
这真让我抓狂。
看起来像 Office 12 数据库引擎
没有任何文档
任何地方。
不完全正确。可用信息有限。
在 MSDN 上,请参阅:
Access 2007 开发人员参考
有一个分支机构Microsoft Jet 复制对象 (JRO) 参考,所以 JRO(其中之一包含 ADO classic 的库)仍然受到 ACE 的官方支持(并且 AFAIK 仍然有效),例如accdb 格式。这压缩数据库方法接受两个参数,这两个参数都是 OLE DB 连接字符串。因此,提供数据库密码应该与常规连接没有什么不同,例如使用Jet OLEDB:Database Password
在连接字符串中。请记住,对于 accdb 格式,您需要包含Jet OLEDB:Engine Type=5
在连接字符串中,例如
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\MyDB.accdb;
Jet OLEDB:Database Password=MYPASSWORD;
Jet OLEDB:Engine Type=5
就其价值而言(事实证明并不多),ACE 引擎的有限文档可以在Access 2007 的 Office 帮助.
请记住,大多数 Access 数据库引擎是在 20 世纪 90 年代开发的,当时专有格式风靡一时。我怀疑文档因商业原因而被压制,知识也因此丢失了。因此,当前可用的文档中有很多漏洞,而且漏洞很大。通常,了解引擎工作原理的唯一方法是通过实际使用来发现它。确实存在的文档包含一些令人震惊的错误:今天我已经在 SO 上发布了几个示例,其中可能使用虚构的功能(限制为 nn 行, 创建临时表等)已在 Access 帮助中公布。买者自负。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)