恩,好象用ResultSet.last的话要用到jdbc的扩展包!

解决方案 »

  1.   

    请问jdbc的扩展包到哪里弄呀?
      

  2.   

    我什么也没动,刷新一遍后又一直出现下面错误:javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.我怀疑是rs.last();把指针移到最后,到后面读纪录时指针仍在最后,读不出纪录,就又在
    int i=0;前加了一句rs.first();仍不行还是这句错误
      

  3.   

    你如果用的是jdk1.4的话jdbc规范的版本是3.0,但你的jdbc driver 应该只支持jdbc2.0规范
    意思就是说:jdk里面的ResultSet只是一个interface,要靠具体的jdbc driver 来实现.
    不知道ResultSet.last是不是3.0规范里面才有的
      

  4.   

    具体的jdbc driver到哪里找呀?
      

  5.   

    (2)第二个问题,就是有关[Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column之类的错误。
    具体说明如下及分类解决如下:
    (2.1)如果你采用jdbc-odbc驱动。那么只能告诉你,你必须按照查询的顺序去获取顺序的字段。如果打乱顺序,或重复查询同一列,将会获取null或抛出上面的异常。
    (2.2)如果你采用weblogic jdriver驱动。那么将不支持jdbc2.0 method。
    (2.3)如果你采用MS自己的JDBC驱动。那么在查询语句中不包含blob或clob字段(就是Image和Text类型)的时候,查询是支持re-read方式的,可以非顺序查询。但是一旦包含的blob或clob字段。那么就必须按照顺序查询,且不支持重复查询===============
    上面说到了问题的所在了,那么如何解决呢?建议大家更换驱动,可以获取第三方的MS SQL Server驱动。比如JSQLConnect,JTurbo等等驱动。
    目前为了解决ms的re-read问题,我采用了JSQLConnect驱动,效果很好。
    (当然,那些不是免费的,不过可以到www.freetds.com上获取一个免费的,不过据说效果不是很好,而且版本偏低,可以尝试一下)
      

  6.   

    rss.last();
    此用法不正确!
    RESULTSET的last()方法返回的是boolean类型,而不是void
    所以不能这么用!

    if (rss.last())
    {
       .....
    }
      

  7.   

    to cugarwang :
    能不能把你的给我JSQLConnect复制一份呀?我这里访问不了那个网站。你是掏钱买的么?我不是商用的呀!谢谢
      

  8.   

    to shicial(lubo):
    你还不如用ResultSet->RowSet->CachedRowSet 来做比较简单,CachedRowSet在disconnect后数据集仍在,你可以随便last了如果有兴趣,留下email,我把它发给你
      

  9.   


    我的email:[email protected]  顺便把驱动程序的数据库连接语句也给我说说
     
    我调出结果后再给分 呵呵 :)
      

  10.   

    对了你说的ResultSet->RowSet->CachedRowSet 是怎么用的呀?