大魚

          FineReport調用Oracle數據庫中的存儲過程需要兩步走

          存儲過程是由流控制和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設計器,右擊數據源面板,選擇私有數據源,彈出私有數據源對話框。

            2.點擊增加按鈕,新建一個私有數據源,名為ds1,數據庫選擇為Oracle數據源,查詢類型為存儲過程,在sql文本框中寫如下語句調用存儲過程:

            

          {call fr.p_stscore('[?Class|Class1?]',?)}

            

            3.點擊預覽按鈕,可以預覽查詢到的數據,如下所示:

            

            至此,FineReport設計器成功調用Oracle存儲過程,您可以根據報表需求隨心所欲地設計報表樣式了。

            

          posted on 2011-10-19 10:28 大魚 閱讀(2027) 評論(0)  編輯  收藏 所屬分類: j2ee

          主站蜘蛛池模板: 灵川县| 松原市| 武夷山市| 灵丘县| 堆龙德庆县| 都兰县| 许昌市| 财经| 宝清县| 江口县| 拜城县| 都安| 浦东新区| 射阳县| 保德县| 彩票| 陆川县| 定结县| 长寿区| 泉州市| 涞源县| 天水市| 波密县| 罗山县| 阿鲁科尔沁旗| 辽宁省| 五峰| 渝北区| 奇台县| 长武县| 海盐县| 双柏县| 杭锦后旗| 宜城市| 内江市| 哈密市| 搜索| 综艺| 南通市| 株洲县| 兴业县|