为什么我收到“未找到数据源名称且未指定默认驱动程序”?

时间:2013-05-13 17:26:05

标签: ms-access jdbc odbc

从Java,我想连接到服务器中的.ACCDB文件(DSN less),我不断收到错误。我用谷歌搜索了几个小时,找不到任何东西。请帮忙!

String sURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=DBQ=C:/test/theDB.accdb;READONLY=true;";

        try {   
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");          
            log.debug("url: "+sURL);                

            // create connection to database using connection string
            dbCon = DriverManager.getConnection(sURL);

}
catch(SQLException e) {
            //retry
            try{dbCon = DriverManager.getConnection(sURL);}
            catch(SQLException ex){
                // Now, it is real failing. Throw exception
                log.error("Fail second time",ex);
                throw new SQLException(e.getMessage());
            }
        } catch (ClassNotFoundException e) {
            log.error(e.getMessage());
            throw new SQLException(e.getMessage());
        } 
        return dbCon;

以下是我得到的例外情况:

  

java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]找不到数据源名称,并且没有在sun.jdbc.odbc.JdbcOdbc.createSQLException(未知来源)[na:1.7.0_10]指定的默认驱动程序.jdbc.odbc.JdbcOdbc.standardError(未知来源)[na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(未知来源)[na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbcConnection.initialize (未知来源)[na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbcDriver.connect(未知来源)[na:1.7.0_10] at java.sql.DriverManager.getConnection(Unknown Source)[na:1.7.0_10 ]在java.sql.DriverManager.getCon ...

1 个答案:

答案 0 :(得分:0)

DBQ=DBQ=C: ...可能会导致问题。一个DBQ=就足够了。