各位大哥请帮帮忙 pb 如何取得存储过程的反回值

gdutmo 2006-04-28 05:56:01
pb 如何取得存储过程的反回值
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
圣殿骑士18 2006-05-16
  • 打赏
  • 举报
回复
呵呵,刚贴过,还热乎着呢,用output标记
定义:
create procedure gp_gen_billno
@as_type varchar(20),
@as_billno varchar(12) output,
@as_msg varchar(200) output
as
....
调用:
exec gp_gen_billno 'Shift',@ls_billno output,@ls_msg output

均需要output标记
sunpower99 2006-05-16
  • 打赏
  • 举报
回复
同意
mnsiii 2006-05-16
  • 打赏
  • 举报
回复
同意楼上,本版其他帖子有类似问题,可以参考,还有,faq好像有这个解决办法
lzheng2001 2006-05-16
  • 打赏
  • 举报
回复
方法1:
要获取OUTPUT参数或者Return值 可把procedure作為transaction的外部函數引用(local external function). 新建->standare class-> transation -> local external function -> 右键 -> paste special->sql -> remote sp
引用时,要先给PB变量定义大小,string ls_out space(10) 与 sp中output定义的长度一致

打开application -> 属性页中占击->additional properties->variable types->sqlca 下面填上这个uo的名字->ok

调用 li_return = sqlca.sp_name(...)


====================================================================================

2. 对于一般的含output参数的SP,建议用上面的方法取out值,但用通常的方法fetch也能取值,当SQLCA.SQLCODE = 100 再执行一次fetch就行. 你试试吧.
FETCH test INTO :tout1, :tout2 ;
if SQLCA.SQLCODE = 100 then
FETCH test INTO :tout1, :tout2 ;
end if
laoduan_78 2006-04-29
  • 打赏
  • 举报
回复
如果在PB中写的存储过程,用Fetch就可以了(看帮助),
如果在SQL Server中写的,可用两种方法:
1.做存储过程的时候把存储过程返回值定义成输出参数(output);
2.得到存储过程要返回值后(例如变量◎a),采用select ◎a的方法,然后在PB中建一个存储过程类型的dw,最后利用datastore取出该返回值!
--收工
xyqiqi 2006-04-28
  • 打赏
  • 举报
回复
看一下帮助就会知道,
用FETCH取得返回值

754

社区成员

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

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