我使用以下代码
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
这是怎么引起的,我该如何解决?
原文由 Tepken Vannkorn 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有同样的错误,这是 Delphi 的 ODBC Express 驱动程序。
我找到的解决方案是:
将 varchar(max) 和/或 varbinary(max) 字段放在选择查询的末尾。 (表定义中的顺序无关紧要)。
这确实为我们解决了问题,想与大家分享。