2011-10-26 7 views
0

私は、以下のルーチンを使用してJDBC-ODBC接続を確立しようとしているます。java.sql.SQLException:sun.jdbc.odbc.JdbcOdbc.createSQLExceptionで一般的なエラー(不明なソース)

private static Connection getConnection(String systemDSN, String username, String password) throws Exception { 
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
    String url = "jdbc:odbc:" + systemDSN; 
    Class.forName(driver); 
    return DriverManager.getConnection(url, username, password); 
} 

そして、ここですよ完全なスタックトレースを取得しています!

java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) 
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 

誰でも私にこれがどのように引き起こされ、どのようにこれを修正できるか教えてください。

+0

http://stackoverflow.com/questions/6477887/connecting-to-sql-database-in-java/6477983#6477983 – Rasel

+0

しかし、私はデータベース名ではなくシステムDSN名を使用していると確信しています。実際にレジストリを読んで、適切なシステムDSN名を導き出しました。私に他の提案をお願いしますか?? – Sam

答えて

0

これはまだ別のビット問題である可能性がありますか?

これが64ビットシステムの場合、Javaランタイムのビット数は重要です!!!!

64ビットのJavaランタイムが唯一の64ビットODBCドライバにアクセスすることができます...

32ビットのJava実行時間はわずか32ビットODBCドライバにアクセスすることができます...

32ビットおよび64ビットODBC環境です同じではありません...

+0

間違ったユーザー名とパスワードになりました。どのように迷惑な! – Sam

0

"一般的なエラー"の答えを探して、最終的にデータソース名に問題があることがわかりました。 xxは、それは私を形成作品

データベース名データソース名ではありません

jdbc:odbc:xx

関連する問題