2013-01-05 48 views
0

我的原始環境是SQL Server 2005 + WebSphere v6.0(JDBC 3.0)。當我像下面那樣運行程序時,它運行良好。Java異常:該語句沒有返回結果集

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任意組合的效果很好,等

請給我任何指針,你的建議是有價值的我,謝謝。

安使用executeQuery

+0

請發表聲明,這對分析很有用。 – sorencito

回答

2

您正試圖執行一個查詢,要麼產生多個結果或不產生一個結果(如UPDATEINSERT等)。該Javadoc for this method明確地說:

拋出:SQLException - 如果發生數據庫訪問錯誤,這種方法被稱爲在一個封閉的聲明,給定的SQL語句生產以外的任何其他單個ResultSet對象

你要麼需要使用executeUpdate方法(如果它實際上是一個更新/插入/刪除或execute然後用所得的boolean和的getMoreResults()來決定如何處理。