java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row dat
来源:互联网 发布:双阳网络 编辑:程序博客网 时间:2024/05/20 14:25
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row dat
今天在修改一个程序问题的时候,什么错误也没有,检查程序也没找到程序到底哪里出了问题,我就是觉得奇怪了,怎么会这样。后来改了一下,在页面中把错误手动输出后,发现Java.sql.SQLException: [Microsoft][SQLServer 2000 Driver forJDBC]ResultSet can not re-read row data for column 5这个错。起初不知道这个是什么,关于SQLServer 2000我还是第一次接触到,后来查了资料,才解决了问题。
案例:
数据库表:TestTable
表字段及类型:
guid char(38)
title varchar(100)
content Text
username varchar(20)
查询sql语句:
selectguid,username,content,title from TestTable
java代码:
rs.getString("guid");
rs.getBinaryStream("content");
rs.getString("username");
这个java代码会出错。
原因:这个是sqlserver2000驱动的一个bug, 使用微软的这个驱动,必然会报错(就是上面说的那个错误)。如果你跟踪的话,必然是这一行:rs.getString("username")抛出错误。
方案1:按照顺序去读(即按照select语句查询的顺序来读取,sqlserverjdbc在select的列中包含text或image字段时,所以必须按select的列顺序读取,且不支持重复查询)
如果把rs.getString("username")和rs.getBinaryStream("content");位置互换一下,会怎么样呢。结果就是可以正常运行。
方案2:换驱动(下载一个jtds-1.2.2.jar,导入到项目中)
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String URL ="jdbc:jtds:sqlserver://127.0.0.1:1433/student";
总结:两个方案均可。我的问题解决了,开心。
-------------------
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 4.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row dat
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row dat
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 4.
- [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.
- Microsoft JDBC "ResultSet Can Not Re-Read Row Data" Error
- [SQLServer JDBC Driver]ResultSet can not re-read
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection wh
- Microsoft JDBC "ResultSet Can Not Re-Read Row Data" Error解决办法
- sqlserver报“ResultSet can not re-read row data for column”错误的解决办法
- 微软JDBC驱动的问题 :ResultSet can not re-read row data for column
- ResultSet can not re-read row data for column
- ResultSet can not re-read row data for column
- ResultSet can not re-read row data for column 1.
- ResultSet can not re-read row data for column
- ResultSet can not re-read row data for column
- ResultSet can not re-read row data for column 4
- ResultSet can not re-read row data for column X
- ResultSet can not re-read row data for column X
- 用户登录记住密码(SharePreference的使用)
- CSS3-transform属性
- 线段树
- C语言的输入输出总结
- 1003. Emergency (25)
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row dat
- centos常见问题解决
- 《剑指Offer》 二叉树的深度
- Discuz开发之function_core常用函数解析
- Java关键字
- 写给即将离开校园成为一名程序员的几句忠告
- Retrofit的基本post,get请求
- 第X大的数
- jsp隐含对象