2013-05-13 2 views
0

Java에서 서버의 .ACCDB 파일 (DSN less)에 연결하려고하는데 오류가 계속 발생합니다. 나는 몇 시간 동안 봤는데 아무 것도 못 찾았 어. 도와주세요!"데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다"라는 메시지가 나타나는 이유는 무엇입니까?

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) [na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) [na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) [na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) [na:1.7.0_10] at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) [na:1.7.0_10] at java.sql.DriverManager.getConnection(Unknown Source) [na:1.7.0_10] at java.sql.DriverManager.getCon...

+0

오류 : 은 java.sql.SQLException : [마이크로 소프트] [ODBC 드라이버 관리자] 데이터 원본 이름을 발견하고 기본 드라이버가 sun.jdbc.odbc.JdbcOdbc.createSQLException (알 수없는 소스)에서 \t을 지정하지 [NA : 1.7 sun.jdbc.odbc.JdbcOdbc.standardError (알 소스)에 .0_10] \t [NA : 1.7.0_10] sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect (알 소스)에 \t [NA : 1.7.0_10] sun.jdbc.odbc.JdbcOdbcConnection.initialize (알 소스)에 \t [NA : 1.7.0_10] sun.jdbc.odbc.JdbcOdbcDriver.connect (알 소스)에 \t [NA : 1.7.0_10] 자바에서 \t. sql.DriverManager.get 연결 (알 수없는 소스) [na : 1.7.0_10] \t at java.sql.DriverManager.getCon ... – mycoffee

+0

전혀 신경 쓰지 않고 해결했습니다. 고맙습니다. 이것은 Java 실행 버전 문제입니다. – mycoffee

답변

0

DBQ=DBQ=C: ... 아마 문제가 발생합니다

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; 

는 여기에 내가 얻을 예외입니다. 하나의 DBQ=이면 충분합니다.

관련 문제