java.sql.SQLException:sun.jdbc.odbc.JdbcOdbc.createSQLException 的一般错误(未知来源)

我正在尝试使用以下例程建立 JDBC-ODBC 连接,

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)

任何人都可以让我知道这是如何引起的以及我该如何解决这个问题??!

stack overflow java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
原文答案

答案:

作者头像

想知道这是否可能是另一个比特问题?

如果这是一个 64 位系统,那么 Java 运行时的位数很重要!!!!

64 位 Java 运行时将只能访问 64 位 ODBC 驱动程序...

32 位 Java 运行时将只能访问 32 位 ODBC 驱动程序...

32位和64位的ODBC环境不一样...

作者头像

寻找“一般错误”的答案,我终于发现是数据源名称的问题。

jdbc:odbc:xx 其中 xx 是数据源名称而不是数据库名称

它对我有用!