存储过程: CREATE PROCEDURE dbo.ccgc(@aa varchar(8),@bb varchar(8),@c integer,@dd

打瞌睡的斯拉斯拉 2009-06-08 05:19:48
存储过程:
CREATE PROCEDURE dbo.ccgc(@aa varchar(8),@bb varchar(8),@c integer,@dd varchar(8),@return integer output) AS
begin

if @cc='1'
update form1 set id='1' where form1_aa=@aa
else
update form1 set id='0' where form1_aa=@aa
select @return = 2
return 3

end
程序:
CAdoCommand adoCmd1(&adoCn,"ccgc");
adoCmd1.GetParameters()->Refresh(); //传入参数
adoCmd1.GetParameter(1)->Value =(_variant_t)(aa) ;
adoCmd1.GetParameter(2)->Value = (_variant_t)bb;
adoCmd1.GetParameter(3)->Value = (long)c;
adoCmd1.GetParameter(4)->Value = (_variant_t)dd;

_RecordsetPtr pAdoRsMat1= NULL;
pAdoRsMat1 = adoCmd1.Execute(adCmdStoredProc);
if(pAdoRsMat1 == NULL)
return ;
_variant_t VretValR, VretVal ;
int retVal = 0;
int retValR=0;
VretValR=adoCmd1.GetValue(long(0));
retValR=VretValR.lVal; //返回值
VretVal=adoCmd1.GetValue(long(5));
retVal=VretVal.lVal; //返回值
程序无法读取到存储过程的返回值,但是如果存储过程直接做返回即改成:
begin

if @cc='1'

select @return = 2
return 3

end
则可以读取到返回值,究竟怎么回事呢????
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname 2009-06-09
  • 打赏
  • 举报
回复
vc版面的全名是VC/MFC

其全路径是
开发语言->VC/MFC->数据库
  • 打赏
  • 举报
回复
发表于:2009-06-08 21:09:301楼 得分:0
建议 移到VC版
--------------------

发表于:2009-06-08 17:22:021楼 得分:0
存储过程还是到数据库版面吧...不知道您老怎么想到发这里的.
--------------------------------------------------------------------------
数据库那边建议我vc,vc这边建议我数据库,这就是传说中的两面不是人?
zjf30366 2009-06-08
  • 打赏
  • 举报
回复
唉,一年多没鼓捣数据库了,忘干净了。呵呵。
goodname 2009-06-08
  • 打赏
  • 举报
回复
存储过程还是到数据库版面吧...不知道您老怎么想到发这里的.

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧