一、關於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物件,通過編寫 訪...