while(true){
int j=cst.getUpdateCount();
while(j>-1){
cst.getUpdateCount();
}
break;
}
int i=rs.getInt(11);

解决方案 »

  1.   

    CREATE PROCEDURE dbo.SP_SetCoursePlan 
    @SYSDM varchar(2),
    @XKDM varchar(8),
    @SYMC varchar(50),
    @SYRQ DATETIME,
    @SYZC TINYINT,
    @SYJC char(1),
    @SYSCX varchar(10),
    @KXRS TINYINT,
    @MZRS TINYINT,
    @SXRS TINYINT,
    @RESU TINYINT=1 OUTPUT
    AS
    DECLARE @maxRs TINYINT
    IF EXISTS(SELECT ID FROM CoursePlan WHERE SYSDM=@SYSDM AND SYRQ=@SYRQ AND SYJC=@SYJC)
    SET @RESU=0
    ELSE
    BEGIN
    SELECT  @maxRs=MAX(SXRS) FROM CoursePlan
    INSERT INTO CoursePlan(SYSDM,XKDM,SYMC,SYRQ,SYZC,SYJC,SYSCX,KXRS,MZRS,SXRS)
     VALUES(@SYSDM,@XKDM,@SYMC,@SYRQ,@SYZC,@SYJC,@SYSCX,@KXRS,@MZRS,@maxRs+1)
    SET @RESU=1
    END
    SELECT @RESU
    然后直接调用就可以了GO
      

  2.   

    直接修改你自己的程序,你只是注册返回参数和获得的时间有点问题;
    cst.registerOutParameter(11,java.sql.Types.TINYINT);
    改为
    cst.registerOutParameter(1,java.sql.Types.TINYINT);//表示你用来传回的地一个参数
    out.println(cst.getByte(1));//这样才对的
    cst.getByte(1));//表示获得传回的地一个参数值
    其他的依次类推,只是你要注意数据类型,java和jdbc中的不同。
      

  3.   

    返回结果集不需要做任何处理,你只要写好用于查询的存储过程:
    CallableStatement cst = conn.prepareCall("{call 用于查询的存储过程}");
    .........//你自己的程序.和上面很相似的。
    rs=cst.executeQuery();//执行,rs已经取得了结果集。可以正常操作了
    while(rs.next()){
    ......
    }
    rs.close();
    ..........
      

  4.   

    LingFengNB(凌枫) 请问返回结果集的存储过程应该全部是SELECT语句吧?
    你能给我个离子吗?谢谢!
      

  5.   

    LingFengNB(凌枫) 
    我用我上面的存储过程,按照你那样的方法rs=cst.executeQuery();
    服务器提示No ResultSet set was produced?我觉得是不是存储过程返回的对象应该是个Cursor才对?具体应该怎么写,请给个例子。
    谢谢指教!解决就给分!
      

  6.   

    你要返回什么值,你就select什么,
    这样执行后rs就会获得
    你的整个存储过程都没有select的东西
    CREATE PROCEDURE CC
    AS
    DECLARE @ID INT
    SELECT @ID = 1
    SELECT @ID
    这么简单的一个存储过程
    你调用EXEC CC
    就可以返回ID到rs中去了
    搞不懂你想要什么
      

  7.   

    Tomcat4(Tom)
    取得返回值你应该会做了吧,就上面的那个,肯定对的,我给你两个我自己写的源程序看看,跟上面有点改变。
    ..........//源程序剪辑。下面是用于取回返回参数
    stmt=Conn.prepareCall("{call myaddgroupinfo('"+array[j-1]+"','"+dd+"','"+GNo+"','"+array[j-1]+"','"+TNo+"','"+place+"',?)}");
            stmt.registerOutParameter(1,java.sql.Types.VARCHAR);
            stmt.executeUpdate();
            Message= stmt.getString(1);//取得记录集。这是我的BEAN中封装的方法,我这里用了Statement,CallableStatement应该也行的,另外你可以看看PreparedStatement这个也是用于调用存储过程的,也可以,方法很多的
    public ResultSet getRs(char t)
    .......//这才是你要的  
    stmt=Conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
     rs=stmt.executeQuery("{call myseltitleinfo()}");
    return rs;
        }上面是我用的好的,如果你还不成功,老兄,你只好看看JDK帮助了,我就是看它,做好的。