无法使用Windows-64bit连接到MS Access DB

时间:2012-12-08 23:16:59

标签: java odbc

  

可能重复:
  Microsoft Access and Java JDBC-ODBC Error

我在创建数据库时遇到了问题。我有一个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中所说的一样。

编辑编辑:嗯,经过数小时和数小时的研究后,我终于搞清楚了。问题不是我的代码,因为它与Windows x64BIT和Office中的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 个答案:

答案 0 :(得分:1)

经过大量研究,看到与我和其他地方有关的大量未解答的问题后,我偶然发现了一篇文章,其中包含一个简单的解决方案,让我想要把头伸进我的办公桌。

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

如果您有64位Windows 7计算机和32位版本的Access,那么您将遇到问题。从这篇文章中,我能够卸载当前的MS Access - 并重新安装64位版本。重新添加我的数据库源,一切正常。