【问题标题】:java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)java.sql.SQLException:sun.jdbc.odbc.JdbcOdbc.createSQLException 的一般错误(未知来源)
【发布时间】:2011-10-26 06:13:35
【问题描述】:

我正在尝试使用以下例程建立 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)

谁能告诉我这是怎么引起的,我该如何补救??!

【问题讨论】:

  • 但我确定我使用的是系统 DSN 名称而不是数据库名称。事实上,我通读了注册表,以获取相应的系统 DSN 名称。你能不能给我任何其他的建议??!

标签: java jdbc odbc


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 最终用户名和密码错误!真烦人!
【解决方案2】:

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

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

它对我有用!

【讨论】:

    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 2012-03-17
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多