java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]无效的描述符索引

我使用以下代码

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)字段放在select Query的末尾. (表定义中的顺序无关紧要).

这真的为我们修好了,想与你们分享.

转载注明原文:java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]无效的描述符索引 - 代码日志