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

存储过程同时返回值和记录集,该如何取得返回值

楼主miniburger(我行我素)2005-04-01 23:50:15 在 Web 开发 / ASP 提问

我有一个存储过程,执行完成之后,有以下三种可能,该如何正确取得返回值?  
  1、同时记录集(非空,有记录的)和返回值(先返回记录集,再有返回值)  
  2、返回一个空记录集和返回值(先返回一个空记录集,再有返回值)  
  3、只返回一个返回值,没有结果集  
   
  执行存储过程的ASP代码如下:  
   
  Command2.ActiveConnection   =   MM_vod_data_STRING  
  Command2.CommandText   =   "declare   @re   int   EXECUTE   @re=p_vcall   '"&tel&"'   select   @re"  
  Command2.CommandType   =   1  
  Command2.CommandTimeout   =   0  
  Command2.Prepared   =   true  
  set   re=Command2.Execute()  
   
  if   re(0)=0   then   '********  
                        '程序段---------------  
                    else  
                        '程序段2---------------  
                    end   if  
   
  当遇到第1种情况时,正常执行,re(0)取得的是记录集第1列的数据。  
   
  当遇到第2种情况时,执行到“******”标识的行时就有问题了,提示:“在对应所需名称或序数的集合中,未找到项目。”,因为它先返回一个空记录集,所以取不到列的数据,所以出错。  
   
  当遇到第3种情况时,正常执行,re(0)取得的是返回值。  
   
  我该如何正确取得返回值,而不是记录集呢? 问题点数:0、回复次数:8Top

1 楼miniburger(我行我素)回复于 2005-04-02 08:06:47 得分 0

十万火急啊!哪位大侠指点迷津啊??Top

2 楼miniburger(我行我素)回复于 2005-04-04 15:05:40 得分 0

顶啊!!!HELP!!!Top

3 楼ryuginka(一米八五的猪)回复于 2005-04-04 15:19:19 得分 0

你表达清楚点啊,或者贴出你的存储过程.  
  还有是什么数据库?Top

4 楼miniburger(我行我素)回复于 2005-04-04 15:43:51 得分 0

存储过程是这样  
   
  CREATE   PROCEDURE   p_vCall  
  @cPhoneNo   varchar(10)  
   
  AS  
   
  DECLARE   @Error   int,   @RowCount   int  
   
  IF   @cPhoneNo   <>''  
  SELECT   * FROM   tb_VPhone   WHERE   tb_VPhone.cPhoneNo=@cPhoneNo  
   
  SELECT   @Error=@@Error,   @RowCount=@@RowCount  
   
  IF   @Error<>0  
  BEGIN  
  RETURN   9  
  END  
  ELSE   IF   @RowCount<=0  
  BEGIN  
  RETURN   5  
  END  
  ELSE   RETURN   0  
  GO  
   
   
  用的是MSSQL数据库  
   
  请指点迷津Top

5 楼fcuandy(了此残生.)回复于 2005-04-04 15:51:03 得分 0

CREATE   PROCEDURE   p_vCall  
  @cPhoneNo   varchar(10)  
   
  AS  
  -------------------------------------------------  
  没有定义输出参数,又怎么能取出?Top

6 楼miniburger(我行我素)回复于 2005-04-04 15:59:30 得分 0

RETURN不就是已经是返回值   了吗??  
   
  我在ASP执行存储过程的时候是这样的"declare   @re   int   EXECUTE   @re=p_vcall   '"&tel&"'   select   @re"  
   
  这里就定义有返回的变量Top

7 楼fcuandy(了此残生.)回复于 2005-04-04 16:06:28 得分 0

再去读读关于带参数存储过程的资料吧Top

8 楼net205(人不可以无耻到这种地步)回复于 2005-04-04 17:43:15 得分 0

Command2.CommandText   =   "declare   @re   int   EXECUTE   @re=p_vcall   '"&tel&"'   select   @re"  
  这一句declare   @re   int后面不用;也行吗??  
  建议如   fcuandy(www.webizs.com)所说,用output参数,然后可以用Command对象,网上搜索一下,比较多,不过我没有试成功。  
   
  还有一个办法就是我提议你可以把结果在最后可以select   出来成一个记录集形式,然后recordset对象里有一个NextRecordset方法可以取下条记录集Top

相关问题

  • 关于存储过程返回值!!!
  • 存储过程返回值的问题.
  • 关于存储过程的返回值.
  • 急!!! C# 中存储过程返回值
  • ****存储过程返回值的问题****
  • 存储过程无法返回值
  • 存储过程如何返回值?
  • 存储过程返回值问题?
  • 存储过程的返回值问题
  • 存储过程返回值的问题

关键词

  • 存储过程
  • 执行
  • 返回值
  • 记录集
  • cphoneno
  • 取得
  • rowcount
  • re
  • 遇到第
  • 返回一个

得分解答快速导航

  • 帖主:miniburger

相关链接

  • Web开发类图书

广告也精彩

反馈

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