Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1888370
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类:

2009-01-08 16:56:46

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 2.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
org.apache.jsp.manage.putinresult_jsp._jspService(putinresult_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

使用SQLServer 数据库时,可能发生此异常,原因是微软自己的jdbc驱动不支持同一个记录的字段的重复读取,因为微软加入了text,image这种类型的支持,就限制了字段的回读功能.

解决方法:按照顺序(从左到右的顺序)读取字段,例如(getString(1),getString(2),getString(3)....);当然这个是微软jdbc驱动的一个bug,我们也可以不用他的驱动,自己到网上下载jtds.jar驱动,使用这种驱动就不会出现上面的异常了.

jtds.jar下载地址:

测试程序:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>


<%
 Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
 String url="jdbc:jtds:sqlserver://192.168.0.10:1433/pubs";
    String user="sa";
    String password="passwd";
    Connection conn=DriverManager.getConnection(url,user,password);
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
 String sql="select * from titles";
 ResultSet rs=stmt.executeQuery(sql);
 while(rs.next()) { %>
    您的第一个字段内容为:<%=rs.getString(1)%>

    您的第二个字段内容为:<%=rs.getString(2)%>

  <% } %>
  <% out.print("数据库操作成功,恭喜你"); %>
  <% rs.close();
   stmt.close();
   conn.close();
  %>
 
 
阅读(1094) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~