如何使用ADO訪問Oracle資料庫儲存過程

2021-04-26 13:27:30 字數 2724 閱讀 9761

一、關於ado

在基於client/server結構的資料庫環境中,通過ole db介面可以訪問資料,但它定義的是低層com介面,不僅不易使用,而且不能被vb,vba,vbscript等高階程式設計工具訪問。

而使用ado則可以很容易地使vb等程式語言直接訪問資料(通過ole db介面)。ado是基於物件導向方法的,其物件模型如下圖所示(略)

由上圖可見,ado物件模型總共才包括六個物件,相對於資料訪問物件(dao)來說簡單得多。因此實際中常常使用它來訪問資料庫。

二、ado訪問資料庫例項

下面,我們以oracle為例,使用vb6.0來訪問其資料庫中的儲存過程。在此例中,我們首先在oracle資料庫上建立有兩個儲存過程,乙個不帶引數,另乙個帶有引數。然後,使用ado來訪問這兩個儲存過程。步驟如下:

1. 在oracle伺服器上執行以下ddl指令碼:

drop table person;

create table person

(ssn number(9) primary key,

fname varchar2(15),

lname varchar2(20));

insert into person values(555662222,'sam','goodwin');

insert into person values(555882222,'kent','clark');

insert into person values(666223333,'jane','doe');

commit;

/

2. 在oracle伺服器上建立包(package):

create or replace package packperson

astype tssn is table of number(10)

index by binary_integer;

type tfname is table of varchar2(15)

index by binary_integer;

type tlname is table of varchar2(20)

index by binary_integer;

procedure allperson

(ssn out tssn,

fname out tfname,

lname out tlname);

procedure oneperson

(onessn in number,

ssn out tssn,

fname out tfname,

lname out tlname);

end packperson;

/

3. 在oracle伺服器上建立以下包體(package body):

create or replace package body packperson

asprocedure allperson

(ssn out tssn,

fname out tfname,

lname out tlname)

iscursor person_cur is

select ssn, fname, lname

from person;

percount number default 1;

begin

for singleperson in person_cur

loop

ssn(percount) := singleperson.ssn;

fname(percount) := singleperson.fname;

lname(percount) := singleperson.lname;

percount := percount + 1;

end loop;

end;

procedure oneperson

(onessn in number,

ssn out tssn,

fname out tfname,

lname out tlname)

iscursor person_cur is

select ssn, fname, lname

from person

where ssn = onessn;

percount number default 1;

begin

for singleperson in person_cur

loop

ssn(percount) := singleperson.ssn;

fname(percount) := singleperson.fname;

lname(percount) := singleperson.lname;

percount := percount + 1;

end loop;

end;

end;

/

4. 在 vb 6.0 中開啟乙個新的工程,預設建立表單 form1。

5. 在表單上新增二個按鈕,cmdgeteveryone和cmdgetone。

6. 在**視窗中新增以下**:

7. 執行程式。當點下cmdgeteveryone按鈕時,程式呼叫oracle資料庫中不帶引數的儲存過程packperson.allperson,點下cmdgetone按鈕時呼叫packperson.oneperson儲存過程。

使用ADO訪問ACCESS

coding utf 8 file ado.py import win32com.client 匯入win32com.client adocon win32com.client.dispatch adodb.connection 建立連線物件 adocon.open podbc 連線到資料來源 ad...

MFC中使用ADO訪問Oracle資料庫

作業系統 win7 64bit 軟體環境 vs2012,本地客戶端使用oracle 11g 64bit 遠端伺服器端使用oracle 11g 32bit import c program files commonfiles system ado msado15.dll no namespace re...

使用ADO或ADO控制項訪問資料庫

目錄 1 資料庫的基礎知識以及建立access資料庫 2 資料庫的介面 3 使用ado或ado控制項訪問資料庫 上篇文章,為大家講解了資料庫的介面,大家對ado也有了較為基礎的了解,這篇文章主要解決大家對ado的用處的疑惑。vb為使用者提供了很多訪問資料庫的方式 方法一 使用ado物件,通過編寫 訪...