【发布时间】:2014-06-03 17:43:22
【问题描述】:
在 Windows 7 64 位机器上,使用 Eclipse Kepler 64 位,JDK6,我有这个错误:
SQL 错误:java.sql.SQLException:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序 0 IM014 之间的体系结构不匹配
很遗憾,这个问答对我没有帮助: https://stackoverflow.com/questions/6721702/windows-7-64-bit-odbc-drivers-for-ms-access-missing
“目标”设置为:%windir%\System32\odbcad32.exe,“开始于”设置为:%windir%\System32
所以,我将其更改为:
“目标”为:%windir%\SysWOW64\odbcad32.exe,“开始”设置为 %windir%\SysWOW64,后来又设置为 %windir%\System32 - 两者都不起作用。
我也看过这个,但答案并不令人满意(安装 32 位版本的 Java 和 STS)64-bit Java can't access 32-bit MS Access database via ODBC
我尝试将参数“-D32”放在 VM 参数中,但也没有帮助。
没有这个: Is there a Windows 7 ODBC driver for Access?
我也读过这个: http://msdn.microsoft.com/en-us/library/ms712362(v=vs.85).aspx
但这些是 Visual Studio 的说明,在 Eclipse KEPLER for Java SE 中,我不知道在哪里可以找到他们建议的选项(编译选项 x86 与 x64)
尝试使用这个 architecture mismatch between the Driver and Application? 没有成功。当我尝试安装 64 位驱动程序时,它抱怨我使用 32 位 Office,因此无法安装这些驱动程序。我安装了 2007 Office System 驱动程序:数据连接组件,但我没有得到以前系统上没有的任何东西http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734
如果我理解正确,因为我使用的是 Windows 7 64 位、Eclipse Kepler 64 位、JDK6 和 Office Access 2007,我相信我应该使用这个:
引用:64位平台下要管理一个连接32位驱动的数据源,我们使用C:\Windows\SysWOW64\odbcad32.exe
我应该怎么做才能使它工作(除了安装 32 位 Eclipse 和 32 位 JVM 正如 OP 最终在这里所做的那样 (64-bit Java can't access 32-bit MS Access database via ODBC)
【问题讨论】:
-
你安装的是什么版本的Access?
-
@ElliottFrisch Access 2007 32 位,整个 Office(我拥有的)是 32 位的。如果我有 64 位,我可以(可能)下载 Office 2010 的 64 位驱动程序 (microsoft.com/en-us/download/details.aspx?id=13255)
-
此建议可能无济于事,但不要使用 Access。 MySQL、PostgreSQL 甚至 SQL Server 都会避免这个本机代码问题。否则,您将被 32 位 java 卡住(您可以将其用作临时解决方案,也可以不使用)。
-
@ElliottFrisch 我完全同意,但我遵循书中的教程以及随附的代码和 Access 数据库。我的意思不是我必须使用它(特别是因为我熟悉 Oracle SQL),只是我为这本书付了钱,我想从中找出每一个例子(在这种情况下是整章)。顺便说一句,我将它设置为 32 位 JDK 和 Eclipse 的临时解决方案,当然它可以工作。