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