加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer2000编程中出现的异常:ResultSet can not re-read row

发布时间:2020-12-12 15:38:19 所属栏目:MsSql教程 来源:网络整理
导读:??????前几天编写了一个数据库应用的小程序,就是连接数据库后将要查询的学生信息显示出来,没有想到却出现了以下的错误: ????? 系统报告了[Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 2 之类的错误。在网上查找了以

??????前几天编写了一个数据库应用的小程序,就是连接数据库后将要查询的学生信息显示出来,没有想到却出现了以下的错误:

????? 系统报告了[Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 2 之类的错误。在网上查找了以下看了各位大侠的遭遇后终于找到原因了,顺便总结一下这个错误的解决方法,其实这并不算是一个程序的编写错误,而是使用微软的JDBC驱动的一个bug。现在将网上搜集的信息罗列如下,帮助本人日后的学习借鉴:

(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类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。国外第三方的驱动很多,比如JSQLConnect,JTurbo等等。

例如:

?String sql = "select a.stu_id,a.name,a.class_id,b.name collegename from student_info a,"+
????????????????? ? "college_info b where a.college_id=b.college_id and a.stu_id = '"+studentId+"'";

?

??? 在查询的时候就应该按照以下的顺序进行,否则就会出现上面的错误。

?try {????????? ??????????? StuDetailBean stuBean = new StuDetailBean();??????????? if (rs != null && rs.next()) {??????????????? stuBean = new StuDetailBean();??????????????? stuBean.setStudentId(rs.getString("stu_id"));??????????????? stuBean.setName(rs.getString("name"));??????????????? stuBean.setClassId(rs.getString("class_id"));??????????????? stuBean.setCollegeName(rs.getString("collegename"));??????????? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读