0
我有一个奇怪的问题,大部分的东西,我似乎找到了在网络上指的是一个驱动程序或连接问题...奇怪值java.sql.SQLException错误
我解析扔了dBASE表来获得一些身份证号码:
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。
Thx提前!
如果您发布整个堆栈跟踪,可能有人可以解释错误。 – 2013-02-23 19:39:13
这是一个奇怪的错误。它看起来像第一个字段有某种错误,但是,当dBase驱动程序试图创建SQL异常时,还有第二个问题,并且ODBC驱动程序管理器会引发异常。这表明至少第二个问题是dBase驱动程序中的错误。尝试从表中选择一个ID,看看它是否仍然发生。 – 2013-02-23 19:42:52
我认为这是SQL Server写的? ,因为我没有看到这个MS Access。 – Azad 2013-02-23 19:58:56