Jet数据库32和64位和备选方案

时间:2011-05-02 16:29:01

标签: database x86-64 ms-jet-ace

我们有一个使用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计算机上也能可靠地安装,并且在不同机器之间复制或移动数据并不简单。那么喷射是否有合适的替代品?一些简单的但在32位和64位工作,理想情况下有OLEDB和ODBC支持? SQLite看起来很有希望吗?

1 个答案:

答案 0 :(得分:1)

刚刚进行了快速搜索,并且在没有访问SQL服务器的情况下似乎没有很多替代方法。我找到了这个,http://www.vistadb.net/,听起来很酷,但开发人员的许可证非常昂贵。

作为替代方案,您仍然可以在不安装64位驱动程序的情况下使用Access。这发生在我身上,不得不从Access读取但无法将应用程序转换为32位。我的回答是写一个单独的'代理'可执行文件,它将以32位运行。我使用System.Diagnostics.Process对象启动应用程序,并通过重定向的标准输入和输出与它通信,将连接字符串作为命令行参数传递。 DataTable类内置了ReadXMLWriteXML函数,可以轻松传递数据。