【发布时间】:2011-08-17 02:39:21
【问题描述】:
我们有一个使用 OLEDB 和 Jet 引擎 Microsoft.Jet.OLEDB.4.0 的应用程序。我们正在将我们的应用程序转换为也以 64 位模式运行。但是,数据库引擎不再是 64 位 Windows 的标准部分。但 Office 2010 64 位确实安装了 64 位访问数据库引擎(请参阅 http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en),因此您可以使用 Microsoft.ACE.OLEDB.12.0。
所以我正在努力解决问题,以便我们的应用程序也可以在 64 位模式下运行。但是 OLEDB 代码抱怨没有注册数据库引擎。所以我尝试在上面的链接上安装可再发行的 64 位引擎。但它告诉我需要先卸载 32 位 Office 2007。我绝对不会这样做,因为我确信某些设置等会丢失。
所以我的问题是: 怎么32位的数据库访问组件在64位模式下不起作用,但是如果已经安装了32位,就无法安装64位?这对任何人都有意义吗?!
我意识到微软希望人们切换到 SQL Server Express,但它的侵入性太大,即使在全新的 Windows 7 计算机上也能可靠地安装,而且在不同机器之间复制或移动数据并不容易。那么Jet有合适的替代品吗?一些简单但适用于 32 位和 64 位并且理想情况下支持 OLEDB 和 ODBC 的东西? SQLite 看起来很有希望?
【问题讨论】:
-
我认为使用正确的 ODBC 管理器存在一些棘手的问题。我不做这种开发,但刚刚读过它。我建议您搜索有关 64 位 Jet/ACE 的 SO 问题,因为我很确定其他人已经遇到过您的问题,并且提供了一个我记得相当简单(且不明显)的解决方案。
-
另一个问题是 64 位 ACE 与 Office 2010 32 位不兼容。因此,如果您的用户安装了 Office 32 位,您的 64 位解决方案将失败。
标签: database x86-64 ms-jet-ace