今天在寫程序的時候發(fā)現(xiàn)了一個很奇怪的問題“ResultSet can not re-read row data for column”,用google一搜,原來是微軟公司的驅(qū)動的兼容性不太好。有熱心人總結(jié)了微軟驅(qū)動的缺點(diǎn):
(1)如果采用jdbc-odbc驅(qū)動,那么就必須按照查詢順序來一次讀取(不論有沒有image或text類型)
(2)如果采用微軟提供的ms sql server jdbc driver,如果查詢語句中,不存在image或text類型字段,那么可以按照無序獲取
(3)如果采用微軟提供的ms sql server jdbc driver,如果查詢語句中,存在image或text類型字段,那么就必須按照順序讀取,否則就會報告Driver]ResultSet can not re-read row data for column之類的錯誤
(4)如果想不查詢語句中有沒有image或text類型字段,都可以不按照順序獲取,或重復(fù)獲取。那么就必須更換驅(qū)動,改用第三方的。
最后,我改用了第三方的驅(qū)動。測試成功。