关于PB9中调用存储过程的垃圾问题

antinet 2005-05-08 02:02:54
在PB9的程序中调用一个含2个输入参数和一个返回参数的存储过程,这个程序应该怎么写?
...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
antinet 2005-06-27
  • 打赏
  • 举报
回复
没人知道吗?
antinet 2005-06-13
  • 打赏
  • 举报
回复
不对。上述语法在PB中是非法的。PB SCRIP中能这样写?
根据PB在线帮助,应该用动态SQL的第3种语法。但严重的是,采用HELP中的语法在执行后退出程序时导致‘非法操作’,即严重的内存使用错误。无论是XP还是W2K,都是这个现象,我用的语法是CLOSE(WINDWOS—NAME)。
能够调用成功是肯定的,我以前做过,但忘了,好象PB的在线HELP有点错误,少写了点东西,哪位高手有例子?
chengchengli 2005-05-20
  • 打赏
  • 举报
回复
PB_fan(雨后彩虹) 应该是对得。

DECLARE sp_duration PROCEDURE FOR dsp_issue_sum
@li_year = :li_acc_year,@li_acc_qty = :li_acc_qty,
@ls_code = :gs_companyid output;

          //执行存储过程对象
EXECUTE sp_duration;


但是,如果你得不到结果,请在执行得前面加上。

sqlcode.autocommit = true 比较好点
antinet 2005-05-20
  • 打赏
  • 举报
回复
不对。
antinet 2005-05-10
  • 打赏
  • 举报
回复
没 人知道吗?就是在PB程序中如何调用存储过程啊,在线等待
jmkongdj 2005-05-10
  • 打赏
  • 举报
回复
tanks
PB_fan 2005-05-10
  • 打赏
  • 举报
回复
其中“dsp_issue_sum”为SQL SERVER所创建的存储过程的名称
PB_fan 2005-05-10
  • 打赏
  • 举报
回复
//定义变量
int li_acc_year ,li_acc_qty //两个输入参数
string gs_companyid      //一个返回参数
//定义存储过程对象
DECLARE sp_duration PROCEDURE FOR dsp_issue_sum
@li_year = :li_acc_year, @li_acc_qty = :li_acc_qty,
@ls_code = :gs_companyid output;

          //执行存储过程对象
EXECUTE sp_duration;
antinet 2005-05-10
  • 打赏
  • 举报
回复
已经在SQL SERVER中定义了存储过程,含输入参数参数或不含输入参数,有输出或无输出,输出时输出参数为1个,在PB编程中如何调用呢?在线等待
sh_zll 2005-05-10
  • 打赏
  • 举报
回复
我有个模板,但不是输出参数的,是用fetch取结果的
declare 程序中procedure名称 procedure for procedure名称 @参数1=:参数1的值,

@参数2=:参数2的值;



execute 程序中procedure名称;



fetch 程序中procedure名称 into :ls_ishaverecipe;



if sqlca.sqlcode = -1 then

ls_remark = sqlca.SqlErrText

ai_error = -1

rollback;

close 程序中procedure名称;

gnv_app.of_log("提示","出错!原因:"+ls_remark)


end if

close 程序中procedure名称

commit;



princelily 2005-05-08
  • 打赏
  • 举报
回复
帮顶!

754

社区成员

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

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