来自Access ODBC的“常规错误,无法打开注册表项Temporary(volatile)…”

我尝试了以下方法:


private String password = "";

private String dbName = "dataHC.accdb";

private String bd = dbName + ";PWD=" + password;

String  url   = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+bd+";";


private Connection conn = null;


//Connect

public void connect() {

    try{

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

        conn = DriverManager.getConnection(url);

        if (conn != null)

            System.out.println("Conexión a base de datos "+dbName+". listo");

    }catch(SQLException e){

        System.out.println(e);

    }catch(ClassNotFoundException e){

        System.out.println(e);

    }

}

字体:http://www.jc-mouse.net/base-de-datos/consultas-con-parametros-en-access-y-java


我得到这个错误:


[Microsoft] [ODBC Microsoft Access驱动程序]常规错误无法打开注册表项进程0x7f8线程0x1174 DBC的Ace DSN(临时)


特别


java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x7f8 Thread 0x1174 DBC 0x8dc8d78                                                              Jet'.

Exception in thread "main" java.lang.NullPointerException

    at depuracionDB.consultap(depuracionDB.java:67)

    at depuracionDB.main(depuracionDB.java:103)

我正在使用Eclipse IDE Luna和Java版本“ 1.7.0_45”(64位)


杨魅力
浏览 1244回答 4
4回答

汪汪一只猫

原因5(未被Gord的其他出色解释所涵盖)用户错误-例如,尝试使用ACE驱动程序读取该功能的早期版本中使用Jet ODBC驱动程序读取的,并非旨在处理的内容(如Excel文件)。即使该消息含糊不清,它仍在打开时正确捕获错误,而不是在您认为打开成功后才正确。:/

www说

在这种情况下,您需要提及访问数据库文件的完整路径。并且在下面提到的url中,两个扩展名之间必须有一个空格(* .mdb,*。accdb)例如:String database="C:/Users/GIRI/Desktop/fdsfkdsfj/abc.accdb";String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + database + ";DriverID=22;READONLY=true";

莫回无

原因6(否则未涵盖)在更改文件名之后,忘记更改要尝试打开的文件名。即试图打开一个不存在的文件。
打开App,查看更多内容
随时随地看视频慕课网APP