这个存储过程到底是怎么回事,各位大虾请进

lixin89 2002-01-29 01:58:17
我定义了一个带有返回参数的存储过程,例如P_user 返回参数rtv
我在pb中执行该存储过程,可是的不到返回值rtv
怎么做才能得到其返回值
declare pro_user procedure for P_user
exec pro_user
Fetch Pro_user into :rtv
close Pro_user
有错吗?
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
freeya 2002-01-29
  • 打赏
  • 举报
回复
如果你在存储过程中没有声明output的变量,那么最简单的方法就是在存储过程的最后加上这么一句也可以返回该值:
select @return_code (@return_code为要返回值的变量)
这样在pb中再用fetch就可以捕捉到了,

另注意:
1----在pb中调用存储过程在每一句的后面要加上";"
2----另一个就是在调用存储过程前要回上
sqlca.autocommit = true
...
(调用完后)sqlca.autocommit = false
否则在一个多用户的系统中会出现死锁
--------------------------------个人观点-------------------------------
qixin000 2002-01-29
  • 打赏
  • 举报
回复
DECLARE logical_procedure_name PROCEDURE FOR
{@rv = } SQL_Server_procedure_name
@Param1 = value1, @Param2 = value2 , ...
{USING transaction_object} ;
{@rv = }:既为返回值;试一试
以上为pb80的帮助文件^_^
qixin000 2002-01-29
  • 打赏
  • 举报
回复
加output试试;但我忘记在哪加了;^_^;我正在找我看过的一篇文章;
找到了告诉你
wzyun 2002-01-29
  • 打赏
  • 举报
回复
你什么数据库?
qixin000 2002-01-29
  • 打赏
  • 举报
回复
能;谁说不能
jhytwl 2002-01-29
  • 打赏
  • 举报
回复
有错,存储过程是不能返回参数的。
liyx326 2002-01-29
  • 打赏
  • 举报
回复
你忘记了加上“;”
如果不是这样,那你的存储过程是怎么写的?

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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