2012-12-08 142 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位版本。重新添加我的数据库来源,一切正常。

相关问题