多年来,在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驱动程序(但那将是我最后的选择)。
发布于 2010-03-05 02:02:24
Office 2010中的Microsoft Access将具有64位版本。Microsoft Office的早期版本仅为32位。
使用SQLExpress既免费又容易使用,而且Access和Java都可以连接到它,所以它看起来是一个很好的选择。
既然您说这是最后的选择,那么另一个选择就是运行32位JDK,它应该可以在Server2008上很好地运行。
发布于 2010-03-05 02:08:44
你有没有试过从Windows2008启动32位ODBC管理器,看看这是否能帮助你诊断这个问题?
32位版本的Odbcad32.exe文件位于%systemdrive%WindowsSysWoW64文件夹中
发布于 2011-02-16 22:22:28
我也有同样的问题。原因是我使用的是64位ODBC DSN和32位JDK。它们应该是相同的体系结构( ODBC DSN和JDK都需要是64位或32位)。如果您在32位上注册ODBC DSN并从64位应用程序(64位JVM)中调用,您将得到一个错误,指出找不到DSN源(因此,为了让应用程序看到ODBC源-您运行的应用程序的JVM应该与ODBS DSN具有相同的体系结构:两者都需要是64位,或者都是32位)。希望这能有所帮助。
https://stackoverflow.com/questions/2381504
复制相似问题