我有一个奇怪的问题,我在网上找到的大多数东西都是指驱动程序或连接问题......
我正在解析抛出一个 dBASE 表来获取一些 id 号:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cnxn = DriverManager.getConnection("jdbc:odbc:dBASE Files;DefaultDir=\"C:\"");
Statement stmt = cnxn.createStatement();
command = "SELECT * FROM table";
ResultSet result = stmt.executeQuery(command);
while (result.next()) {
System.out.println(result.getInt(1));
}
我在控制台中得到的结果是
1
2
3
4
...
1312
1313
1314
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
产生错误的行是:
System.out.println(result.getInt(1));
由于我从中得到了结果,我不认为这是连接错误或驱动程序错误。我看了看表格,第 1315 行似乎没有任何问题,我尝试将其删除,但什么也没有。顺便说一句,使用的表有 2376 行。
我尝试过使用另一个长度不同的表,并且在 417 行后也出现错误。
以防万一它有助于我在 Windows 7、64 位上,这些表是 dBASE IV。
提前谢谢!