我在连接数据库取得Connection conn后Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="SELECT * FROM TABLE";
ResultSet rs=stmt.executeQuery(sql);
rs.next();
int x=rs.getInt(1);
rs.last();当程序执行到rs.last()时,就出现java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY ,当前的执行结果都是正确的,请问这错在哪里了?这里的stmt不是已经设置游标了吗?为什么还会出现这种错误呢?请高手来帮帮我!谢谢

解决方案 »

  1.   

    试了试,ASE 11.9.2 (for Windows)下没有这个问题。
      

  2.   

    不是吧??我试了好多次,都是这样!郁闷!呵呵!
    我怀疑是不是这个数据库版本太旧了还是需要在Jbuilder中再设置什么的?
      

  3.   

    而且我的在工程中已经加载了jconn2.jar,jconn2.jar放在了jre1.5.0_01\lib\ext中,也设置了classpath,但仍然不能用jdbc方式连接数据库,出现class not found的异常,现在我只能用odbc-jdbc桥的方式连接数据库,这样虽然可以连接成功,但会出现上面所说的错误!
    我用的环境和工具是
    jdk 1.5.0, jbuilder x , sybase 11.9.2 ,tomcat 5.0 ,apache 2.0.52 ,jconn2.jar
      

  4.   

    odbc-jdbc是可能有这个问题,老版本不一定支持。jconn2.jar放在tomcat的common\lib下。
      

  5.   

    不好意思,我比较笨,还是有错,程序是这样的
    <%
    Class.forName("com.sybase.jdbc.SybDriver").newInstance();
    String url="jdbc:sybase:Tds:localhost:5007/nspgxt";
    Properties sysProps=System.getProperties();
    sysProps.put("user","sa");
    sysProps.put("password","123456");
    Connection conn=DriverManager.getConnection(url,sysProps);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE");
    rs.next();
    out.println(rs.getInt(1));
    rs.last();
    out.println(rs.getString(2));
    %>
      

  6.   

    jconn2.jar放在E:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\
    jbuilder x里tools\configure libraries中,在user home里添加了一个新的名为sybase
    目录为E:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\
    project\project properties\required libraries已经添加了sybase
      

  7.   

    好郁闷,又出现这个错误了
    An error occured in the bean. Error Message is: JZ006: 捕获到 IO 例外:java.net.ConnectException: Connection refused: connect
    Stack Trace is : 
    java.sql.SQLException: JZ006: 捕获到 IO 例外:java.net.ConnectException: Connection refused: connect
    at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:534)
    at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:838)
    at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3441)
    at com.sybase.jdbc2.tds.Tds.login(Tds.java:421)
    at com.sybase.jdbc2.jdbc.SybConnection.tryLogin(SybConnection.java:247)
    at com.sybase.jdbc2.jdbc.SybConnection.regularConnect(SybConnection.java:223)
    at com.sybase.jdbc2.jdbc.SybConnection.(SybConnection.java:198)
    at com.sybase.jdbc2.jdbc.SybConnection.(SybConnection.java:132)
    at com.sybase.jdbc2.jdbc.SybDriver.connect(SybDriver.java:179)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:61)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:383)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
    at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
      

  8.   

    是不是要执行jconn的什么补丁脚本的,还是sybase连接数不够,但我就只有一个连接啊
      

  9.   

    sybase端口缺省是5000,不是5007
      

  10.   

    localhost换成本机名试试
    另外,确认sybase配置的是5000
      

  11.   

    谢谢!搞定!这个东西,我都搞了三天了,我应该想到的,如果是odbc的话,也不能用localhost的,不然也会连接不上