0

私の元の環境はSQLServer2005 + WebSphere v6.0(JDBC 3.0)です。私が以下のようにプログラムを実行すると、それはうまくいきます。

ResultSet rs=stmt.executeQuery(sql);
rs.next();

ただし、環境をSQL Server 2005 + WebSphere v8.5(JDBC 4.0)にアップグレードすると、次のエラーメッセージが表示されます。

com.microsoft.sqlserver.jdbc.SQLServerException:ステートメントが結果セットを返しませんでした。

このフォーラムの情報から、私は複数の結果セットを持っているように思われるので、次のようにプログラムを変更しようとしましたが、正常に動作します。

stmt.execute(sql);
stmt.getMoreResults();
stmt.getMoreResults();
ResultSet rs=stmt.getResultSet();
rs.next();

JDBC 4.0 driver(WAS v8.5)私の質問は、プログラムを変更せずに、またはなどの任意の組み合わせでうまく機能するアプローチはあるかということですSQL svr 2000 + WAS v8.5

ポインタを教えてください。あなたの推薦は私にとって貴重です、ありがとう。

アン

4

1 に答える 1

2

を使用して、複数の結果セットを生成するクエリ、または結果セットを生成しないクエリ ( など) を実行しようとしてUPDATEINSERTますexecuteQuery。このメソッドのJavadoc には、次のように明示的に記載されています。

例外: SQLException - データベース アクセス エラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、指定された SQL ステートメントは単一の ResultSet オブジェクト以外のものを生成します

メソッドを使用する必要がありますexecuteUpdate(実際に更新/挿入/削除のexecute場合は、結果booleanとそれを使用しgetMoreResults()て処理方法を決定します。

于 2013-01-05T10:18:40.053 に答える