CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

如何获得存储过程的返回值?

楼主formine(火花)2003-09-04 19:36:36 在 MS-SQL Server / 基础类 提问

如有一个存储过程GetBill,参数是UserAccount   nvarchar(50),Bill   Decimal(18,2)   OUT   ,其中Bill是返回值,请问我在程序中如何获得这个返回值。例如,用的是VB,  
   
  dim   dblBill   as   double  
  dim   strUserAccount   as   string  
  dim   cm   as   new   adodb.command  
  ...  
  cm.excute   "execute   getbill   '"   &   struseraccount   &   "',"   &   dblBill  
   
  是这样吗 问题点数:100、回复次数:5Top

1 楼pengdali()回复于 2003-09-04 19:38:48 得分 20

private   sub    
  dim   inSN   as   string   '假定你用的序列号为字符串  
  dim   outRet   as   long   '假定你用的返值为整型  
  dim   cnn   as   new   connection  
  dim   cmd   as   new   command  
  dim   param1   as   new   parameter  
  dim   param2   as   new   parameter  
   
  on   error   goto   Err  
  //建立数据库连接  
  cnn.connectionstring=你要的连接串  
  cnn.open  
  set   cmd.activeconnection=cnn  
  //设置命令对象  
  cmd.commandtype=adcmdstoredprocedure  
  cmd.commandtext=你写的存储过程名  
  //添加参数对象  
  set   param1=cmd.createparameter("insn",advarchar,adparaminput,50,inSN)  
  set   param2=cmd.createparameter("RetVal",adinteger,adparamoutput)  
  cmd.parameters.append   param1  
  cmd.parameters.append   param2  
  //执行之  
  cmd.execute  
  //得到结果  
   
      OutRet=clng(param2)   '得到你想要的返回值  
   
  exit   sub  
  Err:  
      msgbox   err.number   &   err.descrpition  
  end   subTop

2 楼formine(火花)回复于 2003-09-04 19:46:53 得分 0

谢谢,明天结账Top

3 楼txlicenhe(马可)回复于 2003-09-04 19:49:41 得分 20

1:   如上  
  2:我是不喜欢用output的存储过程,麻烦。  
        在存储过程的最后用一条select   @a   ,在前台用起来多方便。  
        rs.open   "   exec   ...   "  
        rs.fields(0)即可。  
  Top

4 楼nboys()回复于 2003-09-04 20:04:45 得分 20

 
       
    datacmd.commandtext="存储过程名称"  
        datacmd.commandtype=4       '指定是存储过程  
        datacmd.parameters(1)=value1     '所有的参数  
        datacmd.parameters(2)=value2  
        datacmd.parameters(3)=value3  
        datacmd.parameters(4)=value4  
  ..................  
      set   rs=datacmd.execute()  
   
  response.write   rs("返回的参数")Top

5 楼sdhdy(大江东去...)回复于 2003-09-04 20:27:07 得分 20

dim   dblBill   as   double  
  dim   strUserAccount   as   string  
  dim   cmd   as   new   adodb.command  
  With   cmd  
          .ActiveConnection   =   cn   '数据库连接  
          .CommandType   =   adCmdStoredProc    
          .CommandText   =   "Getbill"    
  End   With  
  cmd.Parameters.Append   cmd.CreateParameter("@UserAccount",   adVarChar,   adParamInput,   50,   "   &   struseraccount   &   ")  
  cmd.Parameters.Append   cmd.CreateParameter("@Bill",   addecimal,   adParamInputOutput,   ,   0)  
  cmd.Execute  
  dblBill   =   cmd.Parameters.Item(1).Value  
  ....................................................................Top

6 楼zjcxc(邹建)回复于 2003-09-04 20:32:21 得分 20

dim   dblBill   as   double  
  dim   strUserAccount   as   string  
  dim   cm   as   new   adodb.command  
  with   cm  
      .ActiveConnection="数据库连接字符串"     '或connection对象  
      .CommandType=adCmdStoredProc    
      .CommandText="getbill"  
      .Parameters.Refresh  
      .Parameters("@UserAccount")="值"  
      .execute  
      dblBill=.Parameters("@Bill")     '得到返回值  
      msgbox   "返回值:"   &   dblBill  
  end   with  
  Top

相关问题

  • 怎样获得存储过程的返回值
  • 存储过程没有出参,如何获得返回值
  • 如何获得存储过程的返回值?
  • 如果获得存储过程的返回值?
  • 在VB中如何通过ADO调用SQLSERVER的存储过程,并获得存储过程的返回值??
  • 急!如何在VB中获得由SQL SERVER存储过程的返回值啊??
  • 请问如何获得存储过程的返回值?急,在线给分!!
  • 怎样让存储过程获得聚合函数的返回值?
  • ASP如何调用oracle存储过程, 并且获得返回值?
  • dotnet获得存储过程返回值和输出参数有什么不同??????????

关键词

  • 存储过程
  • 数据库
  • 连接
  • datacmd
  • struseraccount
  • dblbill
  • getbill
  • doubledim
  • cmd
  • 返回值

得分解答快速导航

  • 帖主:formine
  • pengdali
  • txlicenhe
  • nboys
  • sdhdy
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo