如何以编程方式创建与Access 2010数据库引擎兼容的Access 2007加密数据库?

时间:2012-02-03 17:08:22

标签: ms-access dao jet adox

我想升级我的应用程序以使用较新的Access 2007/2010数据库引擎。它目前将其数据存储在Jet 4.0(MDB)数据库中。我的应用程序是用Delphi编写的,它使用ADODB(ADO经典)与数据库进行交互。我想从Jet 4.0升级数据库引擎,以便我可以提供更好的加密选项。

我在我的应用程序中更改了连接字符串以使用Microsoft.ACE.OLEDB.12.0,尽管有一些小问题,但转换效果非常好!令人印象深刻的向后兼容性。

我还将我的应用程序分发给Mac用户的Wine包。我在Wine上的Access 2010数据库引擎(1.4-rc1)下运行我的应用程序时遇到了一些问题。出现奇怪的访问冲突。当我在Wine上安装Access 2007数据库引擎时,我的应用程序运行良好。和Jet 4.0一样好。因此,Access 2010数据库引擎似乎还没有为Wine做好准备。无赖!

我遇到的问题是,如果您的Windows机器上安装了Access 2010数据库引擎(例如安装Access 2010时),则在创建新数据库时,它会使用更高形式的安全性对其进行加密。与Access 2007不兼容。我的应用程序的用户无法在PC和Mac之间共享数据库(即通过Dropbox),因为它们将不再兼容。

在Access 2010中,您可以为其设置“使用旧版加密”选项。此选项使Access 2010使用与Access 2007兼容的加密创建新数据库。此选项设置注册表项“CompatMode”,在这种情况下,Access 2010应用程序必须采用不同的方法来创建新数据库。

我的问题是:如何以编程方式创建与Access 2010数据库引擎兼容的Access 2007加密数据库?如果Access 2010应用程序可以执行此操作,我该怎么办?我知道有两种创建Access数据库的技术:1。通过DAO(DBEngine.CreateDatabase),2。通过ADOX(Catalog.Create)。我一直在尝试使用这两种技术的各种方法,并且不能提出任何可以创建与Access 2007兼容的加密数据库的方法。

0 个答案:

没有答案