PB调取存储过程 执行后无结果

sunhu1019 2018-03-26 10:52:03
存储过程:
create procedure SUNGZXS @SDATE datetime,@EDATE datetime,@TSDATE datetime,@TEDATE datetime
as
begin
if (select object_id("#A")) is not null drop table #A
if (select object_id("#B")) is not null drop table #B
TRUNCATE TABLE SHLSBB
select DEPTID,sum(XSJE) XSJE,sum(XSBS) XSBS into #A from GZXS_HIS
where JZRQ>=@SDATE and JZRQ<=@EDATE and DEPTID like '10060602%' group by DEPTID
select DEPTID,sum(XSJE) TQXS,sum(XSBS) TQBS into #B from GZXS_HIS
where JZRQ>=@TSDATE and JZRQ<=@TEDATE and DEPTID like '10060602%' group by DEPTID

INSERT INTO SHLSBB (DEPTID,XSJE,XSBS,TQXS,TQBS)
select * FROM
(SELECT #A.DEPTID,XSJE,XSBS,TQXS,TQBS FROM #A LEFT JOIN #B ON #A.DEPTID=#B.DEPTID
union all
SELECT #A.DEPTID,XSJE,XSBS,TQXS,TQBS FROM #A RIGHT JOIN #B ON #A.DEPTID=#B.DEPTID) #A

end

PB中调用如下:
DECLARE P_1 PROCEDURE FOR SUNGZXS @SDATE = :sd , @EDATE = :ed ,@TSDATE = :sdt , @TEDATE = :edt ; @DEPTID = :gbid ;
execute P_1;
FETCH P_1 INTO :sd,:ed,:sdt,:edt:gbid;
commit using sqlca;
close P_1;

该存储过程在SQL中运行正常,在PB中执行后无结果,请各位指点一二,感谢

...全文
1041 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hovoy 2018-07-16
  • 打赏
  • 举报
回复
搞简单点的先调用试试。逐条测试。
doodle 2018-07-04
  • 打赏
  • 举报
回复
用动态执行sql,给你一段代码参考:

ls_sql= "SET ANSI_NULLS ON;SET ANSI_WarningS ON; exec up_xfdj '"+ls_djids+"','"+string(ll_dw)+"'"
execute immediate :ls_sql using sqlca;
--注:up_xfdj是存储过程名称,两个参数
Awang_126 2018-06-07
  • 打赏
  • 举报
回复
你通过下面的方式调用看看 13.调用SQL Server存储过程问题(通过ODBC连接sqlserver数据库调用存储过程并获得return或output的值) 1、新建一个standard class,并在select standard class type 中选择transaction,这时会打开一个声明函数的窗口 2、在上面的窗口上选择底部的 Declare instance variables 页,在变量类型的下拉框中选择 Local External Functions 3、在空白处右键选择aste -> SQL->remote stored procedure,回出现选择存储过程的窗口,选择即可生成函数 如: CREATE PROCEDURE sp_test (@pinput varchar(10)) AS return 1000 GO 选择sp_test的时候生成如下函数声明 function long sp_test(string pinput) RPCFUNC ALIAS FOR "dbo.sp_test" 4、保存你的对象为:uo_tran 5、双击打开应用,选择additional properties ->variable types,修改SQLCA中的 transaction为uo_tran即可 6、然后你在程序中就可以象使用函数一样调用您的存储过程,如: integer li_return li_return=Sqlca.sp_test('111') 保证能用,无论是ODBC还是直连, 参考: https://bbs.csdn.net/topics/360004982
sxn8008 2018-04-04
  • 打赏
  • 举报
回复
你想要什么结果啊
xiaozhe_song 2018-03-27
  • 打赏
  • 举报
回复
可以参考一下下面这个: https://www.cnblogs.com/powerbuilder/archive/2011/11/18/2254322.html

752

社区成员

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

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