`
mandwuyee
  • 浏览: 35673 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ResultSet can not re-read row data for column X

阅读更多

今天遇到了问题“ResultSet can not re-read row data for column 4”,上网搜了下,原来是微软公司的驱动的兼容性不太好。下面引自csdn博客作者xwhope的文章。

有热心人总结了微软驱动的缺点:

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

 最后,我改用了JDTS第三方的驱动。测试成功。

 错误代码如下:

<td class="td_list_content_center" width=60><%=rs.getString("tip_cd")%></td> --//第一次读取tip_cd

<td class="td_list_content" width=600><%=rs.getString("tip_title")%></td>

<td class="td_list_content_center" width=30>

<img border=0 src="img/view_original.gif" style="cursor: hand;" onmouseover="img/view_hover.gif" onmouseout="this.src='img/view_original.gif'" alt="查看" onclick="view('<%=iCurPosition%>','<%=rs.getString("tip_cd")%>')">--//tip_cd这里出问题了

</td>

解决方法:

下载JDTS驱动(支持SQL6.5,7.0,2000,2005,SYBASE) 下载地址:http://jtds.sourceforge.net/

下载解压后找到jtds-1.2.2.jar,放到 JSP项目 WEB-INF/lib目录下

加载驱动:

Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();

String sConn="jdbc:jtds:sqlserver://localhost:1433/ch03";

String user = "sa";

String password = "123";

conn = DriverManager.getConnection(sConn, user, password);

问题解决!

我的问题也这样解决了,呵呵。

分享到:
评论

相关推荐

    sqlserver2000re_read错误的解决

    在使用Java连接SQL Server 2000数据库时,可能会遇到`java.sql.SQLException: [Microsoft][SQL Server 2000 Driver for JDBC] ResultSet cannot re-read row data for column X`这样的异常。这个问题通常是由于SQL ...

    ResultSet对象获取数据的各种方法

    ### ResultSet对象获取数据的各种方法 在Java编程语言中,`ResultSet`对象是处理数据库查询结果的核心组件之一。它充当一个可滚动的、可更新的数据表,用于存储从数据库执行SQL语句后返回的结果集。本文将详细介绍...

    MyEclipse 使用第三方驱动JTDS链接数据库

    在遇到使用微软官方驱动时出现的问题,如“ResultSet cannot re-read row data for column”这类错误时,可以选择切换到JTDS驱动来解决。 首先,你需要从源码仓库下载JTDS驱动的最新版本,例如jtds-1.2.2.jar。由于...

    ResultSet

    例如,`resultSet.getInt(1)`或`resultSet.getString("columnName")`。 4. 遍历结果集:为了完整遍历ResultSet,你需要在while循环中使用next()方法,直到它返回false为止。示例代码如下: ``` while (resultSet....

    支持ResultSet的JTable

    - `Object getValueAt(int row, int column)`:返回指定行和列的值,这将被`JTable`用于绘制单元格。 通过理解以上概念和方法,开发者可以有效地将数据库查询结果展示在`JTable`上,提供给用户友好的交互式视图。...

    oracle-export-data-into-excel-file.rar_DEMO_excel oracle

    标题中的“oracle-export-data-into-excel-file.rar_DEMO_excel oracle”表明这是一个关于将Oracle数据库中的数据导出到Excel文件的示例项目。这个DEMO适用于那些希望通过编程方式实现这一功能的初学者。标签“demo ...

    java resultset常用方法

    - **resultSetConcurrency**:定义ResultSet的并发性,可以是`ResultSet.CONCUR_READ_ONLY`或`ResultSet.CONCUR_UPDATABLE`。 - **ResultSet.CONCUR_READ_ONLY**:表示ResultSet只能读取,不能更新。 - **...

    Spring Data JDBC与JDBC的区别

    Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...

    ResultSet to XML Converter-开源

    而"ResultSet to XML Converter"是一个开源项目,它的目标是帮助开发者将数据库查询结果,即ResultSet对象,转化为XML文件,以便于数据的保存或与其他系统进行数据交互。 ResultSet是Java数据库连接(JDBC)中的一...

    java-deal-the-CLOB-data0.zip_大数据 编程_数据处理

    ResultSet resultSet = statement.executeQuery(); if (resultSet.next()) { Clob retrievedClob = resultSet.getClob(1); String content = retrievedClob.getSubString(1, (int) retrievedClob.length()); ...

    ResultSet的属性

    ResultSet是Java数据库连接(JDBC)中的一个重要接口,它用于存储和检索数据库查询结果。当执行SQL查询后,结果会被封装成ResultSet对象,允许我们逐行遍历并访问查询返回的数据。在处理ResultSet时,了解其属性和元...

    javaResultSet常用方法.pdf

    resultSetConcurrency指定ResultSet的并发类型,可以是ResultSet.CONCUR_READ_ONLY或ResultSet.CONCUR_UPDATABLE之一。 ResultSet类型 ResultSet类型决定了ResultSet对象的行为,可以是以下三种类型之一: 1. ...

    java数据库连接ResultSet

    Java 数据库连接 ResultSet Java 数据库连接中的 ResultSet 是一个非常重要的概念,它包含符合 SQL 语句中条件的所有行,并且提供了对这些行中数据的访问。ResultSet 通过一套 get 方法访问当前行中的不同列,例如 ...

    ResultSet 转为listmap

    ResultSet 转为 List ResultSet 转为 List&lt;Map&gt; 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,...

    ResultSet转化为json,json转化为List

    在Java编程中,数据处理是核心任务之一,而ResultSet、JSON和List是处理数据时常见的三种数据结构。ResultSet是数据库查询结果的载体,JSON是一种轻量级的数据交换格式,而List是Java集合框架中的动态数组。本文将...

    spring-boot-data-source-decorator:与p6spy,datasource-proxy,flexy-pool和spring-cloud-sleuth集成的Spring Boot

    增加了拦截和记录sql查询的功能,包括拦截大多数Connection , Statement和ResultSet方法调用 -增加了拦截所有查询以及Connection , Statement和ResultSet方法调用的功能 添加连接池指标(jmx,codahale,...

    java 代码笔记 2010-06-23 对ResultSet()的几个常用操作,实例。

    在Java编程语言中,ResultSet是处理数据库查询结果的标准接口,它是Statement或PreparedStatement对象执行SQL查询后返回的结果集。本篇笔记将深入探讨2010年6月23日记录的一些关于ResultSet的常用操作,结合实例进行...

    poi根据ResultSet到处Excle源码

    标题中的“poi根据ResultSet到处Excle源码”指的是使用Java的Apache POI库将数据库查询结果(ResultSet)转换为Excel文件的过程。Apache POI是一个流行的API,它允许开发者读写Microsoft Office格式的文件,包括...

    ResultSet用法集锦

    在Java编程语言中,`ResultSet`是用于存储和处理数据库查询结果的核心接口。它是由`Statement`或`PreparedStatement`执行SQL查询后返回的结果。本文将深入探讨`ResultSet`的使用方法,结合源码分析和实用工具,以...

    JAVA 版本ResultSet 转换为JAVABEAN的工具类

    在Java编程中,ResultSet是处理数据库查询结果的主要接口,它由Statement或PreparedStatement对象执行SQL查询后返回。而JavaBean是一种符合特定规范的Java类,通常用于封装数据,便于数据的传输和操作。当我们从...

Global site tag (gtag.js) - Google Analytics