繁体   English   中英

如何在Windows 2008上将Access数据库与64位Java ODBC驱动程序一起使用?

[英]How do I use 64-bit Java ODBC driver with a Access database on Windows 2008?

多年来,在32位系统上,我从未遇到过问题。 为什么我不能在Windows Server 2008上将64位Java ODBC驱动程序与Access数据库一起使用? 64位系统上的ODBC驱动程序是用32位代码写的吗? 这是我看到的错误,使用64位JDK1.6.018:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
       .....

我怀疑Access驱动程序是32位,因为它没有显示在Windows的64位ODBC控制面板中。 在ODBC控制面板的“驱动程序”选项卡中只能看到两个64位驱动程序(对于SQL Server)。

那么,我该怎么办? 我宁愿不必使用SQL Server和JDBC Type-4驱动程序(但那将是我的最后手段)。

您是否尝试从Windows 2008启动32位ODBC管理器 - 看看这是否有助于您诊断问题?

32位版本的Odbcad32.exe文件位于%systemdrive%WindowsSysWoW64文件夹中

我有同样的问题。 原因是我使用64位ODBC DSN和32位JDK。 这些应该是相同的架构(ODBC DSN和JDK都需要是64位或32位)。 如果要在32位上注册ODBC DSN并从64位应用程序(64位JVM)调用,则会出现找不到DSN源的错误(因此,应用程序要查看ODBC源 - 您正在运行应用程序的JVM应该是与ODBS DSN相同的架构:两者都需要是64位,或者都是32位)。 希望这可以帮助。

如果您使用Microsoft Office 2010,它将返回到64位架构。 因此,它将删除与驱动程序和应用程序之间的体系结构不匹配相关的此错误。

在我的例子中,我在XP上有一个32位JDK 6u45,它使用jdbc:odbc驱动程序来查询.accdb文件。 所以我有一个32位JDK和一个32位MS Office,当我安装它时,它会在我的计算机中自动安装必要的驱动程序。 然后我将项目移动到带有Netbeans 7.3和32位JDK 6u45但是64位MS Office 2013的Windows 7,这样就好了, 如果你安装了32位JDK,那么你需要32位版本的Office (使用Office版本附带的适当驱动程序)。 与64位版本相同。

在我的例子中,我在Oracle的Java归档文件中搜索了64位版本的JDK6u45, 并将项目的JDK更改为64位版本

我有同样的问题,在我的例子中,解决方案是使用32位JDK。

Office 2010中的Microsoft Access将具有64位版本。 早期版本的Microsoft Office仅为32位。

使用SQLExpress既免费又容易使用,Access和Java可以连接到它,因此它似乎是一个不错的选择。

既然你说这是最后的手段,另一个选择是运行32位JDK,它应该在Server 2008上正常运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM