今天在写程序的时候发现了一个很奇怪的问题“ResultSet can not re-read row data for column”,用google一搜,原来是微软公司的驱动的兼容性不太好。有热心人总结了微软驱动的缺点:(1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text,ntext类型)(2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text,ntext类型字段,那么可以按照无序获取(3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text,ntext类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误(4)如果想不查询语句中有没有image或text,,ntext类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。 最后,我改用了第三方的驱动。测试成功。