Jet 数据库 32 位和 64 位及其替代方案

发布于 2024-11-04 22:14:06 字数 868 浏览 4 评论 0原文

我们有一个使用 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位数据库访问组件?这对任何人来说都有意义吗?

我意识到 Microsoft 希望人们改用 SQL Server Express,但它的侵入性太大,即使在干净的新 Windows 7 计算机上也能可靠地安装,并且在不同计算机之间复制或移动数据并不简单。那么有没有合适的 Jet 替代品呢?一些简单但适用于 32 和 64 位并且最好具有 OLEDB 和 ODBC 支持的东西? SQLite 看起来也许很有前途?

We have an application that makes use of OLEDB and the Jet engine Microsoft.Jet.OLEDB.4.0. We are converting our application to also run in 64-bit mode. However, the database engine is no longer a standard part of 64-bit Windows. But Office 2010 64-bit does install a 64-bit access database engine (See http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en) so you can use Microsoft.ACE.OLEDB.12.0.

So I am working on fixing issues so that our application runs in 64-bit mode as well. But the OLEDB code complains about the database engine not being registered. So I try to install the redistributable 64-bit engine on the above link. But it tells me I need to uninstall 32-bit Office 2007 first. No way am I going to do that, because I am sure some settings etc. will be lost.

So my questions are:
How is that the 32-bit database access components do not work in 64-bit mode, but you cant install the 64-bit one if the 32-bit is installed already? Does that make any sense to anyone at all?!

I realize Microsoft wants people to switch to SQL server Express, except it is too invasive, does install reliably even on clean new Windows 7 computers, and it is not simple to copy or move the data around between different machines. Is there a suitable alternative to Jet then? Something that is simple but works on 32 and 64 bit and ideally has OLEDB and ODBC support? SQLite looks promising maybe?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

将军与妓 2024-11-11 22:14:06

刚刚进行了快速搜索,似乎没有很多可以在不使用 SQL Server 的情况下替代 Access 的方法。我发现这个,http://www.vistadb.net/,听起来很酷,但开发人员许可证很漂亮昂贵的。

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

Just did a quick search and there doesn't seem to be alot of alternatives to Access without going to SQL server. I found This, http://www.vistadb.net/, which sounds cool but the developers license is pretty expensive.

As an alternative, you can still use Access without installing the 64 bit driver. This happened to me, had to read from Access but could not convert the app to 32 bit. My answer was to write a separate 'proxy' executable that would run in 32 bit. I'd start the app using the System.Diagnostics.Process object and communicate with it through redirected standard input and output, passing the connection string as a command line parameter. The DataTable class has built in ReadXML and WriteXML functions which makes passing the data like this easy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文