一、關於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
AS
TYPE 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;
/