私は奇妙な問題を抱えており、ウェブ上で見つけたように見えるもののほとんどは、ドライバーまたは接続の問題に言及しています...
私はいくつかのID番号を取得するために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!