存盤程序:
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中執行后無結果,請各位指點一二,感謝
uj5u.com熱心網友回復:
可以參考一下下面這個:https://www.cnblogs.com/powerbuilder/archive/2011/11/18/2254322.html
uj5u.com熱心網友回復:
你想要什么結果啊uj5u.com熱心網友回復:
你通過下面的方式呼叫看看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
uj5u.com熱心網友回復:
用動態執行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是存盤程序名稱,兩個引數
uj5u.com熱心網友回復:
搞簡單點的先呼叫試試。逐條測驗。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16489.html
標籤:數據庫相關
上一篇:函式里的事務問題---求教
下一篇:求助
