存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在數據庫服務器中,FienReport使用時只要調用即可。
調用Oracle存儲過程主要有兩步:第一步,定義存儲過程;第二步,調用存儲過程。
下面以一個具體的實例來學習如何使用FineReport調用Oracle存儲過程的。
第一步,Oracel定義存儲過程
StScroe是Oracele數據庫中的張表,其中記錄了學生的成績信息,表結構如下:
定義返回列表的存儲過程——由於oracle存儲過程沒有返回值,它的所有返回值都是通過out參數來替代的,列表同樣也不例外,但由於是集合,所以不能用一般的參數,必須要用pagkage了,所以定義存儲過程要分兩部分:
1.建立一個程序包,如下:
CREATE OR REPLACE PACKAGE TESTPACKAGE AS
TYPE Test_CURSOR IS REF CURSOR;
END TESTPACKAGE;
2.建立存儲過程,存儲過程為:
CREATE OR REPLACE PROCEDURE p_STSCORE(Class in varchar2,p_CURSOR out TESTPACKAGE.Test_CURSOR) IS
BEGIN
OPEN p_CURSOR FOR SELECT * FROM FR.STSCORE where STSCORE.ClassNo=Class;
END p_STSCORE;
第二步,調用存儲過程
1.啟動FineReport設計器,右擊數據源面板,選擇私有數據源,彈出私有數據源對話框。