2012-04-21 104 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