好久没有加过这么晚的班了

呵呵,纪念一下。

因为没有baidu,以至于拖到现在:

jdbc操作sqlserver2000遇到了ResultSet can not re-read row data for column- -的问题,因为读的是镜像库,又因为之前将发布库一个表的字段改了个类型,就以为又是复制订阅出了问题,于是开始瞎捣鼓,折腾了大半天问题依旧。

最后终于想到了baidu,真是得来全不费功夫,结果里的第一条就告诉了我答案,fuck m$:


ResultSet can not re-read row data for column- -

今天在写程序的时候发现了一个很奇怪的问题”ResultSet can not re-read row data for column”,用google一搜,原来是微软公司的驱动的兼容性不太好。有热心人总结了微软驱动的缺点:

(1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有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类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。


于是按字段顺序读取resultset,问题解决,趁着checkin的时间blog一下,然后回家~

Written on May 11, 2006