奇怪的java.sql.SQLException错误

时间:2013-02-23 19:37:00

标签: java sql dbase

我有一个奇怪的问题,我在网上看到的大部分内容都是指驱动程序或连接问题......

我正在解析抛出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。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

另一个想法仍然存在。如何从表中选择1,314条记录,但具有不同的范围(例如,行1,000 - > 2,313)?我想知道错误是否仍然存在。