while( rs.next ){
    rs.get***(fieldNum);
}

解决方案 »

  1.   

    你可以将存储过程当做SQL语句使用啊!使用标准的JDBC访问方式就可以了.然后ResultSet
      

  2.   

    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from tb1");
    while(rs.next()){
    //这里可以取得所有的数据
    }
      

  3.   

    oracle 里:
    create or replace package pkg_sjck is
      type mycur is ref cursor;
      
      function fun_test1 return mycur;end pkg_sjck;
    /
    create or replace package body pkg_sjck is  function fun_test1 return mycur is
         l_cur mycur;
      begin
        open l_cur for select * from test1;
        return(l_cur);
        exception
           when others then 
           DBMS_OUTPUT.PUT_LINE('Error .....' || sqlcode || ' : ' || sqlerrm ); 
      end fun_test1;end pkg_sjck;
    /
    调用时:
    Connection con;
    Resultset  rs;CallableStatement callfunction=con.prepareCall("{?=call "+funname+"}");            callfunction.registerOutParameter(1,OracleTypes.CURSOR) ;            callfunction.execute() ;
                rs=(ResultSet)callfunction.getObject(1);
      

  4.   

    楼主留言:我这样写,为什么走不下去,浏览器超时
    代码如下<%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%><%
    Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();
    String url ="jdbc:sybase:Tds:199.3.5.109:5000/db1";
    Connection conn= DriverManager.getConnection(url,"user1","ps1");
    CallableStatement cstmt = conn.prepareCall("{call test_a()}");
    ResultSet results=cstmt.executeQuery();boolean more = results.next();
    while (more) { 
    //String bfstatus = results.getString(1);
    String bfstatus=(String)results.getObject(1);
    System.out.println("BF Status="+bfstatus+"<br>"); 
    more = results.next();
    }
    %>
    <%out.print("数据库操作成功,恭喜你");%>
    <%
    results.close();
    cstmt.close();
    conn.close();
    %>
    </body>
    </html>请教各位有什么错误
      

  5.   

    手头没有sybase,以下是一个ms sqlserver的demo
    import java.sql.*;public class CallProcDemo{
    public static void main(String[] args) throws Exception{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://eb001:1433;DatabaseName=Northwind;user=sa;password=");
    CallableStatement stmt = con.prepareCall("{call proc_test}");
    ResultSet rs = stmt.executeQuery();
    while(rs.next()){
    System.out.println(rs.getString(2));
    }
    rs.close();
    con.close();
    }
    }proc_test:
    create procedure proc_test as
    select * from test
    go你的程序有两点存疑:
    一是next()方法用法有问题:
    二是getObject好象不能这样用
    另外sybase 的jdbc driver是否支持?
      

  6.   

    非常感谢greentrees(真稀奇)!!!
    爽拉