2012-12-08 64 views
1

可能重複:
Microsoft Access and Java JDBC-ODBC Error無法與Windows的64位連接到MS Access數據庫

我與創造我DB開始與問題。我有一個64位版本的Windows 7,發現錯誤是Microsoft Office是32位。我能夠通過使用在c:\ Windows \ sysWOW64 \ odbcad32.exe中找到的odbcad32.exe創建我的Access數據庫。

現在在我的Java代碼中,我只是想嘗試連接,但又遇到了類似問題是相關的,並且讓我覺得最多我只是沒有正確設置數據庫。 JavaDB是我在ODBC:DSA中創建的數據源的名稱,您可以在這裏看到:http://i.imgur.com/9n19x.png

我一直在搜索整個互聯網,但無法真正找到明確的答案。可以真正使用幫助,感謝先進!

編輯:我清理了我的代碼,現在我的錯誤是不同的。我在我的項目文件夾C:\ Eclipse \ project1 \ src中有我的物理數據庫文件 - 我已經設置好了,就像我在ODBC中所說的一樣。

編輯編輯:好的,經過數小時和數小時的研究,我最終終於找到了答案。問題不是我的代碼,因爲它是Office中的Windows x64BIT和32位驅動程序的兼容性問題。這篇文章幫助我解決它,現在它工作! http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/

import java.sql.*; 

public class DBTester { 

public static void main(String[] args) throws SQLException, ClassNotFoundException { 

try 
{ 

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 


    String fileName = "C:/Eclipse/school/bin/RegistrationDB.mdb"; 


    String dB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+fileName; 
    Connection connection = DriverManager.getConnection(dB,"",""); 

    System.out.println("connected"); 

    Statement s = connection.createStatement(); 
    s.close(); 
    connection.close(); 

} catch(Exception ex) 
{ 

    ex.printStackTrace(); 

} 


} // end main 

} // end class 

回答

1

大量的研究,看到噸的有關地雷這裏和其他地方,我偶然發現了一個簡單的修復,使我想我的頭撞成了我的辦公桌上的一篇文章懸而未決的問題之後。

http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/

如果你有一個64位的Windows 7機器和訪問的32位版本 - 你將有問題。從這篇文章中,我能夠卸載當前的MS Access,並且重新安裝了64位版本。重新添加我的數據庫來源,一切正常。

相關問題