2012-04-21 142 views
0

我试图使用jdbc和swing连接到访问数据库。但是, 我无法在ODBC数据源控制面板中找到任何MS Access数据库驱动程序(* .mdb)。唯一可用的是SQL Server。读了一下之后,我想这是因为我的操作系统是64位的,我的MS Access是32位的。连接到Access数据库时发生JDBC SQL错误

然后,我去到Windows/SYSWOW64/odbcad32.exe的

在那里,我能找到的Microsoft Access数据库驱动程序。 我与数据库进行了适当的连接,名称为'avi'并再次运行。

我得到这个错误

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(Unknown Source) 
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) 
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) 
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) 
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at Conn.updt(Conn.java:25) 

Conn.java线24和25:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
Connection con = DriverManager.getConnection("jdbc:odbc:avi"); 

我仍然认为它是一个32-64位的问题,但没有任何好转?因为我对此不太了解,所以不需要很多专业知识。

+0

Chekc链接http://stackoverflow.com/questions/2810754/architecture-mismatch-between-the-driver-and-application – user1127214 2012-04-21 12:59:24

+0

谢谢你的上述链接。但是,我正在使用Access 2007。还有其他方法吗? – 2012-04-21 15:21:41

回答

1

--from MSDN -

要管理下64位平台,使用C连接到一个32位的驱动器的数据源:\ Windows \ SYSWOW64 \ odbcad32.exe的。要管理连接到64位驱动程序的数据源,请使用c:\​​ windows \ system32 \ odbcad32.exe。

如果使用64位odbcad32.exe配置或删除连接到32位驱动程序的DSN,您将收到此消息。

+0

感谢您的信息:)在这里,我的数据源是一个名为'avi'的MS Access 2007数据库,我试图连接。该驱动程序是32位odbcad32.exe。 system32/odbcad32.exe没有用于访问的驱动程序。只有SQL Server。仍在寻找解决方案... – 2012-04-21 15:25:05