大魚

          FineReport調(diào)用Oracle數(shù)據(jù)庫中的存儲過程需要兩步走

          存儲過程是由流控制和SQL語句書寫的過程,這個過程經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中,F(xiàn)ienReport使用時只要調(diào)用即可。

            調(diào)用Oracle存儲過程主要有兩步:第一步,定義存儲過程;第二步,調(diào)用存儲過程。

            下面以一個具體的實例來學(xué)習(xí)如何使用FineReport調(diào)用Oracle存儲過程的。

            第一步,Oracel定義存儲過程

            StScroe是Oracele數(shù)據(jù)庫中的張表,其中記錄了學(xué)生的成績信息,表結(jié)構(gòu)如下:

            

            定義返回列表的存儲過程——由于oracle存儲過程沒有返回值,它的所有返回值都是通過out參數(shù)來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數(shù),必須要用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;




            第二步,調(diào)用存儲過程

            1.啟動FineReport設(shè)計器,右擊數(shù)據(jù)源面板,選擇私有數(shù)據(jù)源,彈出私有數(shù)據(jù)源對話框。

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

            

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

            

            3.點擊預(yù)覽按鈕,可以預(yù)覽查詢到的數(shù)據(jù),如下所示:

            

            至此,F(xiàn)ineReport設(shè)計器成功調(diào)用Oracle存儲過程,您可以根據(jù)報表需求隨心所欲地設(shè)計報表樣式了。

            

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

          主站蜘蛛池模板: 湄潭县| 沿河| 扬中市| 珠海市| 广昌县| 手游| 南雄市| 河北区| 建湖县| 沅陵县| 榆林市| 科技| 绥棱县| 玉田县| 永年县| 赤水市| 康乐县| 东莞市| 大方县| 丰城市| 宜兴市| 广河县| 会同县| 肥乡县| 吴堡县| 仙居县| 福贡县| 东海县| 大理市| 济宁市| 岗巴县| 原平市| 韶关市| 六枝特区| 黄浦区| 石屏县| 华亭县| 铜山县| 伊春市| 锦州市| 如东县|