当前位置:  技术问答>java相关

CallableStatement为什么不能取出存储过程的返回值呢

    来源: 互联网  发布时间:2015-08-13

    本文导语:  CallableStatement cstmt = con.prepareCall("{call SearchLog(?, ?, ?, ?, ?, ?)}"); cstmt.registerOutParameter(1, java.sql.Types.VARCHAR); ........... 设置其他差数的传入值 Rs = cstmt.executeQuery(); out.println(cstmt.getString(1)); 这里取出的数据总是为...

CallableStatement cstmt = con.prepareCall("{call SearchLog(?, ?, ?, ?, ?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.VARCHAR);

...........
设置其他差数的传入值

Rs = cstmt.executeQuery();
out.println(cstmt.getString(1));


这里取出的数据总是为Null,什么破东西噢

|
给你一个例子..........

//准备可调用语句对象 
CallableStatement cstmt=conn.prepareCall("{?=call test222(?,?,?)}");

    //设置输入参数 
    // cstmt.setString(2,"seven"); 
 
    //登记输出参数 
cstmt.registerOutParameter(1,java.sql.Types.INTEGER);
cstmt.registerOutParameter(2,java.sql.Types.CHAR);
cstmt.registerOutParameter(3,java.sql.Types.VARCHAR);  
    cstmt.registerOutParameter(4,java.sql.Types.INTEGER); 
     
    //输出参数
 int intReturn=-99;
     String  lib_code="lib_code";
     String  lib_name="lib_name";
 int  flag=-99;

    //执行该存储过程并返回结果集 
    rs=cstmt.executeQuery();

    String rs_libcode;
String rs_libname;
    int    rs_flag;
while (rs.next()) 
    {
   //获取来自结果集中的数据 
       rs_libcode = rs.getString(1); 
      rs_libname = rs.getString(2);
   rs_flag = rs.getInt(3);

       out.println("rs_libcode="+rs_libcode+"
");
   out.println("rs_libname="+rs_libname+"
");
   out.println("rs_flag="+rs_flag+"
");
   out.println("=====================================================
");
    }

    //获取返回值 
    intReturn = cstmt.getInt(1);

//获取输出参数的值 
    lib_code= cstmt.getString(2); 
lib_name= cstmt.getString(3); 
flag= cstmt.getInt(4); 
  
    //输出
    out.println("intReturn="+intReturn+"
");
out.println("lib_code="+lib_code+"
");
out.println("lib_name="+lib_name+"
");
out.println("flag="+flag+"
");

注意:如果你的存储过程中不返还结果集,你需要用cstmt.executeUpdate()或cstmt.execute(),而不是cstmt.executeQuery();

|
经过测试,我发现可能是ODBC的问题

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql接口callablestatement的类成员方法: wasnull定义及介绍
  • CallableStatement 应用求教
  • java命名空间java.sql接口callablestatement的类成员方法: setrowid定义及介绍
  • 使用连接池时能否使用预编译的PrepareStatement或CallableStatement,200分求教
  • java命名空间java.sql接口callablestatement的类成员方法: getbyte定义及介绍
  • JDBCTM 指南:入门7-CallableStatement
  • java命名空间java.sql接口callablestatement的类成员方法: getint定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: getsqlxml定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: getcharacterstream定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: getbytes定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setlong定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setdouble定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setfloat定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setint定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setshort定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setbyte定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setbigdecimal定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setnstring定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: setboolean定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: getarray定义及介绍
  • java命名空间java.sql接口callablestatement的类成员方法: getrowid定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3