iT邦幫忙

0

[JAVA] 使用rs.getRow(),rs.beforeFirst() 會出現"不支援在順向結果集上執行要求的作業"

如題:
在JAVA語法中透過JDBC取資料後,使用
不支援在順向結果集上執行要求的作業。ResultSet 的rs.getRow(),rs.beforeFirst()

LOG會顯示錯誤"不支援在順向結果集上執行要求的作業"

爬過文後,表示要加上資料指標轉換。
於上我補上資料
Statement rs = conn.createStatement(SQLServerResultSet.TYPE_SCROLL_SENSITIVE, SQLServerResultSet.CONCUR_READ_ONLY);
LOG卻說
https://ithelp.ithome.com.tw/upload/images/20171101/20105722akgtT32LJi.png
https://ithelp.ithome.com.tw/upload/images/20171101/20105722AJJNqcQiPr.png

改另一種方式表達
Statement rs = conn.createStatement(SQLServerResultSet.TYPE_SCROLL_SENSITIVE, SQLServerResultSet.CONCUR_READ_ONLY);
LOG又說 " 不支援此資料指標類型/並行的組合。"
https://ithelp.ithome.com.tw/upload/images/20171101/20105722gG8yXdQv2z.png

請高手幫幫忙,解解惑

大大感謝!!!

1 個回答

0
海綿寶寶
iT邦超人 1 級 ‧ 2017-11-02 09:55:26
最佳解答

我沒有更直接的答案
我只找到錯誤的原因

斯斯有兩種,ResultSet 也有兩種
你寫的那個 TYPE_SCROLL_SENSITIVE/CON_CUR_READONLY 是java.sql.ResultSet裡的
所以
SQLServerResultSet.TYPE_SCROLL_SENSITIVE/CON_CUR_READONLY 才會找不到

SQLServerResultSet 的 TYPE 看這裡

話又說回來
SQLServerResultSet 繼承了 java.sql.ResultSet
不知道有沒有繼承了這些欄位

現今是民主社會
我想採多數決
Google SQLServerResultSet.TYPE_SCROLL_SENSITIVE 筆數:4 筆
Google ResultSet.TYPE_SCROLL_SENSITIVE 筆數:77,600 筆
這樣我想答案應該很明顯了吧...

看更多先前的回應...收起先前的回應...
froce iT邦研究生 5 級 ‧ 2017-11-02 11:09:48 檢舉

其實我也看到了,只是沒在寫java,不知道會不會繼承。

恩恩 iT邦新手 5 級 ‧ 2017-11-02 11:27:42 檢舉

更正我原文寫的後段。
我後來也改為
dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
但LOG卻是出現" 不支援此資料指標類型/並行的組合。"

恩恩 iT邦新手 5 級 ‧ 2017-11-02 11:38:25 檢舉

試出來囉!!!
我原本多加了"IN"
將IN拿掉就可以。(TYPE_SCROLL_INSENSITIVE-->TYPE_SCROLL_SENSITIVE)

還是很謝謝海綿寶寶,給你個讚!!

你用的不會剛好是 SQL Server 2005吧...

解決了就好,恭喜了

恩恩 iT邦新手 5 級 ‧ 2017-11-02 14:27:59 檢舉

這個版本。https://ithelp.ithome.com.tw/upload/images/20171102/20105722ANea0X0jo9.png

我要發表回答

立即登入回答