两种Oracle应用程序开发接口的对比分析

本文将介绍在Visual C++ 6.0中开发Oracle应用程序的最常用的两种方式:ADO(ActiveX Data Objects, ActiveX数据对象)与OCI(Oracle Call Interface,Oracle调用接口)。通过设计实验,采用两种 方式分别完成数据初始化、数据读取、数据更新等工作,通过对比两种方式的代码量及运行速度来分析两 种方式的特点,并最终总结出两种方式各自的优缺点与适用范围。

引言

Oracle以其优越的稳定性和卓越的性能在众多领域里有着广泛的应用,其高性能是Oracle优于其他数 据库的关键因素。然而影响终端应用程序的性能不只是Oracle服务程序及硬件环境,应用程序的开发语言 和开发方式也有着重要的影响。

目前,可以在多种开发语言中开发Oracle应用程序,比如可以在VB、Delphi等高级开发语言中开发, 可以以C++开发,也可以以Java语言开发,甚至可以通过ASP、JSP、Perl等脚本语言来访问Oracle。这些 语言环境各有其优势,C++无疑是追求极致速度的首选。

在C++中我们也可以有多种接口方式,可以使用ADO通用接口,可以使用OCI/OCCI,还可以使用ODBC、 OO4O及OLEDB等方式。在这些方式中,ADO与OCI是应用最为广泛的两种方式,本文将集中力量介绍在 Visual C++ 6.0 中这两种接口的开发方法及它们的特点对比。

一、ADO开发接口简介

ADO(ActiveX Data Objects,ActiveX数据对象)是Microsoft为强大的数据访问接口 OLEDB(对象链接 和嵌入数据库)而设计的,是一个便于使用的应用层的编程接口。使用 ADO编写的应用程序可以通过 OLEDB提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、可以访问多种数据库及 可以在多种语言中开发。

由于ADO建立在自动化(Automation)的基础上,所以ADO的应用场合非常广泛,不仅可在Visual Basic 这样的高级语言开发环境中使用,还可以在一些脚本语言中使用,这对于开发Web应用和在ASP(Active Server Page,动态服务器主页)的脚本代码中访问数据库提供了操作应用的捷径。

ADO访问数据库的模型示意参见图1。

图1:ADO模型示意图

从上图可以看出ADO是以OLE DB为基础,它对OLE DB进行了封装,所以ADO其实是OLE DB的应用层接口 ,是介于OLE DB与应用程序之间的中间层。这种结构为一致的数据访问接口提供了很好的扩展性,不再局 限于特定的数据源,只要OLE DB支持的数据源,ADO都可以很好地支持。

ADO的另一个特性是使用简单,它封装了OLE DB的复杂的接口,以Connection、Recordset、Command三 个主体对象及Errors、Properties、Parameters和Fields四个集合对象搭建起了ADO对象模型,见下图:

图2:ADO对象模型

时间: 2025-01-02 07:47:01

两种Oracle应用程序开发接口的对比分析的相关文章

《深入解析IPv6(第3版)》——2.4 应用程序开发接口

2.4 应用程序开发接口 Windows包含以下支持IPv6的应用程序接口(API). Windows Sockets(Windows套接字). Winsock Kernel. Remote Procedure Call(远程过程调用). Internet Protocol Helper. Win32 Internet Extensions(Win32 Internet扩展). NET Framework(.NET框架). Windows Runtime. Windows Filtering P

甲骨文推出两款数据库应用程序开发工具

甲骨文股份有限公司是全球大型数据库软件公司,成为全球仅次于微软的全球第二大软件公司,总部位于美国加州的红木滩,现时行政总裁为公司创办人罗伦斯·艾利森(Lawrence J. Ellison).甲骨文1977年硅谷由3人合制,最初一年赚不够百万美金,在10年间迅速冒起,2004年市值达640亿美元. 约在2000年前后,微软的数据库产品,只集中在中小企市场,但微软推出MS SQL 7数据库后,技术上突破,抢占高档软件市场.IBM亦以DB2数据库,高姿态抢攻市场,令甲骨文面临庞大挑战.在制定反击策略

两种oracle创建字段自增长的实现方式_oracle

mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能. 因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式. CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; 解析: 1)INCREMENT BY用

现流行数据库程序开发工具的比较分析

比较|程序|数据|数据库 [程序开发系列一]现流行数据库程序开发工具的比较分析 武汉华中师大信管系 谢刚 摘要:随着计算机技术不断发展,各种数据库编程工具也随着发展,使当今的大多数程序开发人员可以摆脱枯燥无味的用计算机指令或汇编语言开发软件,而是利用一系列高效的.具有良好可视化的编程工具去开发各种数据库软件,从而达到事半功倍的效果,但是现在市面上的数据库编程工具门类众多,优良不齐,比如VB,VC,DEPHI,PB等,对此我特别针对流行的开发语言介绍相应的较为成熟的数据库编程工具. 关键字:数据库

Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

   在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是通过AsyncTask来实现,另一种方式则是通过ThreadPool来实现,今天我们就通过一个例子来讲解和对比这两种实现方式.     本文原创,如需转载,请注明转载地址http://blog.csdn.net/carrey1989/article/details/12002033     项

两种类型的Ajax开发

一种类型是完全没有架构设计的Ajax开发,靠堆积代码完成复杂的功能.这样的开发者人数众多,往往来自ASP.PHP等开发者阵营,没有受到过严格的软件设计和软件开发的训练.我将其称为"无组织的Ajax开发",或者"增加了XMLHttpRequest对象的DHTML开发",他们所生产的代码质量比51js网站上那些免费下载的DHTML代码强不了多少,难以使用,难以维护. 第二种类型是基于某个成熟的Ajax开发框架和设计模式的Ajax开发,开发的代码在structure/pr

CSDN博客和OJ,两种积累编程代码量的方法对比

带着菜鸟学生在CSDN上发博文积累代码量已经有近两年的时间(见2011级学生和2012级学生),模式逐渐成熟,学生们每周能够认真地完成该做的学习任务,积分见涨,排名提升,相互评论,互褒互贬,好不热闹.尽管在学习中需要克服的困难依然存在,但从总体上,遇到问题能伸出手去编,编完程序还有发博文的一个环节,倒也算是目标明确,乐得做下去. 近日在张罗ACM协会,协会工作逐渐走上正轨,关于ACM比赛的事情也有同事专心去做.这算是了却了多年来一直想做这方面事的一个心愿.以算法能力为核心的学生课外学习活动能够借

两种数据库二进制字段存取控制方式的对比

二进制|控制|数据|数据库 方式一:对于小容量的数据,进行一次载入内存,一次性获取 /// <summary> /// 小容量附件数据读取性能测试 /// </summary> /// <param name="strSql"></param> /// <returns></returns> public static bool ProcessDataFromDataBaseByAdapter(string str

JS两种类型的表单提交方法实例分析_javascript技巧

本文实例分析了JS两种类型的表单提交方法.分享给大家供大家参考,具体如下: 1.原始的 <form method="post" action="/student/stureg/add" id="form1" onsubmit="return subForm();"> <button type="submit" class="button red" style="