原創(chuàng)|使用教程|編輯:郝浩|2013-04-27 14:07:40.000|閱讀 238 次
概述:Oracle數(shù)據(jù)庫允許創(chuàng)建包,可以統(tǒng)一設(shè)置存儲進程、函數(shù)、變量、用戶自定義類型。dotConnect for Oracle通過實現(xiàn)類型化OraclePackage組件來處理Oracle包。這些組件可以實現(xiàn)像處理一個普通的.NET對象一樣來處理包。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Oracle數(shù)據(jù)庫允許創(chuàng)建包,可以統(tǒng)一設(shè)置存儲進程、函數(shù)、變量、用戶自定義類型。dotConnect for Oracle通過實現(xiàn)類型化OraclePackage組件來處理Oracle包。這些組件可以實現(xiàn)像處理一個普通的.NET對象一樣來處理包。
這個導航的使用是建立在知道連接到服務(wù)器,以及都建數(shù)據(jù)庫對象的基礎(chǔ)上實現(xiàn)的。首先需要需要在Oracle數(shù)據(jù)庫中封裝包,如下所示:
CREATE OR REPLACE PACKAGE Pack AS PROCEDURE get_all_depts (cur OUT SYS_REFCURSOR); PROCEDURE insert_dept (pDeptno INTEGER, pDname VARCHAR, pLoc VARCHAR); FUNCTION dept_count RETURN INTEGER; END PACK; / CREATE OR REPLACE PACKAGE BODY Pack IS PROCEDURE get_all_depts (cur OUT SYS_REFCURSOR) AS BEGIN OPEN cur FOR SELECT * FROM dept; END; PROCEDURE insert_dept (pDeptno INTEGER, pDname VARCHAR, pLoc VARCHAR) AS BEGIN INSERT INTO dept(deptno, dname, loc) VALUES (pDeptno, pDname, pLoc); END; FUNCTION dept_count RETURN INTEGER AS cnt INTEGER; BEGIN SELECT COUNT(*) INTO cnt FROM dept; RETURN cnt; END; END PACK; /
通過類型化的Oracle包向?qū)Э梢灶愋突疧raclePackage,這個向?qū)Э梢詮腣S的主菜單單或是工具箱中啟動。在工具箱中啟動的話,選擇對話窗口中選擇新的類型選項,然后單擊確定:
開啟了導航之后,就可以按照下面的步驟來操作:
1、在你創(chuàng)建了包的服務(wù)器上設(shè)置連接屬性,單擊下一步。
2、選擇是否在數(shù)據(jù)庫中顯示所有的包,或者是顯示用戶指定的包。所以會提供單選按鈕和用戶的列表框。
3、設(shè)置生成類的名稱,將會放置在命名空間,命名規(guī)則也將會放置在這里。
4、選擇添加oraclepackage到設(shè)計器復(fù)選框,將生成的OraclePackage實例放置到窗體上。
這個導航將會生成用于封裝Oracle包的類,如果你已經(jīng)選擇了最后的復(fù)選框,就會將生成的OraclePackage實例放置到窗體上。包類需要一個開放的連接,在運行向?qū)У臅r候,如果您已創(chuàng)建一個新的連接,OracleConnection實例oracleConnection1也將會放置在窗體上。
封裝包進程在pack1上也是可行的,就像通常的對象方法一樣。在下面的示例中,就展示了這個過程:
1、獲得DEPT表中的行數(shù)。
2、DEPT表中插入一個新的記錄。
3、在表中檢索所有記錄。
[C#]
// Open the connection. Until the connection is opened, // any invocation of package methods will throw an exception. pack1.Connection.Open(); // 1. Check the number of rows in the dept table via the dept_count function: int count = (int)pack1.DeptCount(); // 2. Insert a record via the insert_dept procedure: pack1.InsertDept(100, "Research", "San-Jose"); // 3. Get all records using the get_all_depts procedure, and fill a DataTable with them: OracleCursor cur; // The procedure returns an OracleCursor object, which can be used to retrieve a data reader. pack1.GetAllDepts(out cur); OracleDataReader r = cur.GetDataReader(); // With the data reader, we can populate the data table. OracleDataTable dt = new OracleDataTable(); dt.Load(r);[Visual Basic]
' Open the connection. Until the connection is opened, ' any invocation of package methods will throw an exception. Pack1.Connection.Open() ' 1. Check the number of rows in the dept table via the dept_count function: Dim count As Integer = Pack1.DeptCount() ' 2. Insert a record via the insert_dept procedure: Pack1.InsertDept(100, "Research", "San-Jose") ' 3. Get all records using the get_all_depts procedure, and fill a DataTable with them: Dim cur As OracleCursor ' The procedure returns an OracleCursor object, which can be used to retrieve a data reader. Pack1.GetAllDepts(cur) Dim r As OracleDataReader = cur.GetDataReader() ' With the data reader, we can populate the data table. Dim dt = New OracleDataTable() dt.Load(r)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件