如何使用ADO访问Oracle数据库存储过程
2007-05-13 12:30:37 来源:WEB开发网核心提示:一、关于ADO在基于Client/Server结构的数据库环境中,通过OLE DB接口可以存取数据,如何使用ADO访问Oracle数据库存储过程,但它定义的是低层COM接口,不仅不易使用,另一个带有参数,然后,而且不能被VB,VBA
一、关于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;
/
3. 在Oracle服务器上创建以下包体(package body):
更多精彩
赞助商链接