java - java.sql.SQLException :[Microsoft][ODBC Driver Manager] Invalid descriptor index 异常

标签 java jdbc

我使用下面的代码

try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:access");
    String sql = "Select * from table";
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery( sql );
    ResultSetMetaData md = rs.getMetaData();
    int columns = md.getColumnCount();
    for (int i = 1; i <= columns; i++) {
        columnNames.addElement( md.getColumnName(i) );
    }
    while (rs.next()) {
        Vector row = new Vector(columns);
        for (int i = 1; i <= columns; i++){
            row.addElement( rs.getObject(i) );
        }
        data.addElement( row );
    }
    rs.close();
    stmt.close();
}catch(Exception e){
    System.out.println(e);
}

它显示:

java.sql.SQLException:[Microsoft][ODBC Driver Manager] Invalid descriptor index

这是怎么引起的,我该如何解决?

最佳答案

我遇到了完全相同的错误,这出自 Delphi 的 ODBC Express 驱动程序。

我找到的解决方案是:

将您的 varchar(max) 和/或 varbinary(max) 字段放在您选择的查询的末尾。 (表定义中的顺序无关紧要)。

这确实为我们解决了问题,想与大家分享。

关于java - java.sql.SQLException :[Microsoft][ODBC Driver Manager] Invalid descriptor index 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361340/

相关文章:

java - 在 Linux 上无需指定数据库名称即可通过 JDBC 连接到 MonetDB

java - Postgres-错误 : prepared statement "S_1" already exists

java - 如何在 Ubuntu 上创建 Servlet 和/或 JSP 项目?

Java 对列表中的项目进行排名

java - 为什么这个奇怪的顺序发生在 Java 的 PriorityQueue 中?

java - 哪个 Java 线程负责 PostgreSQL 数据库进程?

java - 提交可以自动收集到一个批处理中吗?

mysql - 尝试从 spring mvc 应用程序在 mysql 中插入数据时获取 java.io.EOFException

java - 为什么这个 BigInteger 在输入 FFFFFFFF (8 F) 时显示不正确的结果

java - 如何从 hibernate 映射文件生成 Jaxb-XML-Beans?