Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)

解决方案 »

  1.   

    这试了,这条语句还是不行,我说的向前和向后对应的是ResultSet.next()和ResultSet.previous()这两个方法
      

  2.   

    1.要让数据库的驱动支持jdbc2.0, jdbc1.0不支持这样的参数的
    (特别是DB2,需要使用usejdbc20bat)2. 返回的数据库为空的时候, 就不能进行光标定位
      

  3.   

    用这个,肯定行
    (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)
      

  4.   

    我的服务器是TOMCAT4.1.18+JDK1.4,后台数据库用Oracle8i,我程序的部分代码如下:
    ------------------------------------------------------
       Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
       String sql1="select BM,GNMC,WY from TB_MODEL_GN where substr(BM,1,length(BM)-2)='"+parentbm+"'";
       rs2=stmt.executeQuery(sql1);
       if (rs2.next()){
          ...
          do{
            ...
            String sql2="select * from TB_MODEL_GN where substr(BM,1,length(BM)-2)='"+nodebm+"'";
            Statement stmt2=conn.createStatement();
            rs3=stmt2.executeQuery(sql2);
            if (rs3.next()){
               ...
            }
            else{//下面几行运行时出错,提示信息:Result set type is TYPE_FORWARD_ONLY
                if(!rs2.next())  
                   ...
                else{
                   ...
                }
                rs2.previous();
            }
            stmt2.close();
            ...
            ...
          }while(rs2.next());
          ...
       }
       stmt.close();
    --------------------------------------------------------------
    请高手们帮忙查查?
      

  5.   

    你的数据库连接是不是用odbc的?odbc是不支持滚动查询的,要用相应的数据库驱动包
      

  6.   

    用ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE是可以的
    给你给例子,数据库为oracle8.05<%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <html>
    <body>
    <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    //orcl为你的数据库的SID
    String user="system";
    String password="manager";
    Connection conn= DriverManager.getConnection(url,user,password);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from tab";
    ResultSet rs=stmt.executeQuery(sql);
    rs.last();
    int count = rs.getRow();
    out.println(count);
    rs.beforeFirst();
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%><br>
    您的第二个字段内容为:<%=rs.getString(2)%><br>
    <%}%>
    <%out.print("数据库操作成功,恭喜你");%>
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>但是我用bean的时候就不行了,谁能给解释一下?代码如下:
    package conn;
    import java.sql.*;
    public class conn
    {
    String sDBDriver = "oracle.jdbc.driver.OracleDriver";
    String url="jdbc:oracle:thin:@wyx:1521:orcl";
    String user="webstat";
    String password="khkj";
    Connection connect = null;
    ResultSet rs = null;
    public conn()
    {
    try
    {
    Class.forName(sDBDriver);
    }
    catch(java.lang.ClassNotFoundException e)
    {
    System.err.println(e.getMessage());
    }
    }
    public ResultSet executeQuery(String sql)
    {
    rs = null;
    try
    {
    connect = DriverManager.getConnection(url,user,password);
    Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs = stmt.executeQuery(sql);
    }
    catch(SQLException ex)
    {
    System.err.println(ex.getMessage());
    }
    return rs;
    }
    }
      

  7.   

    这个和具体的驱动有关。
    建议你用RowSet.你可以去Sun的网站下载:rowset-1_0-ea4。只有240k.
      

  8.   

    我从Oracle网站上下载了class12.jar数据驱动,请问怎么配置使其生效?