基于bde的数据库连接方法_第1页
基于bde的数据库连接方法_第2页
基于bde的数据库连接方法_第3页
基于bde的数据库连接方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于bde的数据库连接方法

现在数据库应用程序变得越来越普遍,各种语言开发平台都支持开发数据库应用程序。C++Builder是Inprise公司继Delpli之后提出的一款高性能可视化集成快速开发工具。它使用的VCL类库提供200个左右的控件,使得C++Builder开发应用程序非常方便容易,特别是建立在BDE和ADO基础上的数据库访问控件,使得利用C++Builder进行数据库访问要比其它开发工具更加方便快捷。下面就这两种连接数据库方法及优缺点做一下比较,谈谈笔者的体会。1数据库连接由bde组件执行1数据库驱动文件BDE是Borland公司提供的实现数据库应用程序和数据库底层连接的工具软件,全称为BorlandDatabaseEngine,即Borland数据库引擎。它是基于Windows操作系统的32位数据库引擎。通过BDE,应用程序可以实现与数据库底层的连接。BDE提供的数据库别名管理机制,隐藏了数据库的物理性质,使数据库应用程序不需要因为数据库物理结构的变化而修改代码。BDE为许多数据库提供了统一的接口API(ApplicationProgramInterface,应用程序公共接口),它包括Dbase、Paradox、FoxPro、Access、Text、InterBase、Sybase、Oracle和MicrosoftSQLServer,同时也支持微软的ODBC(OpenDatabaseconnectivity,开放的数据库互连)数据源。系统只要提供数据库的驱动程序,BDE就能访问这种类型的数据库,不需要了解数据库的具体细节。BDE的核心数据库驱动文件由一系列动态连接库组成,它们是BDE访问本地数据库和远程数据库的驱动程序库。对于单机使用数据库,C++Builder直接通过BDE来控制数据库的存取,如图1所示。对于远程数据库,BDE需通过ODBC或SQLLinks来控制数据库的存取,如图2所示。在访问ODBC数据源之前,需要为BDE建立内置的ODBC驱动程序,即通过ODBC管理器(Administrator)负责安装驱动程序,管理数据源。C++Builder通过SQLLinks可访问SQL服务器数据库,它们是Oracle、Sybase、SQLServer、DB2、Informix和InterBase数据库。在C++Builder中通过BDEAdminstrator来进行BDE数据库引擎的数据库驱动程序的安装和数据库连接参数的设置,以及创建、删除、修改和维护数据库别名。2数据库访问控制软件C++Builder5中基于BDE上的连接数据库控件有TTable、TQuery、TDatabase和TSession。TDatabase控件为应用程序提供不同的控制数据库连接的方法,如永久的连接、自定义的数据库服务器登录、事务控制、应用程序中的BDE别名等。TTable和TQuery控件是最常用的数据库访问控件。TTable控件用来访问数据库中单个表;TQuery控件封装了结构化查询语句,应用程序通过结构化查询语句可以获得多个数据库表中的数据。TSession控件提供了一个应用程序范围内的一组数据库连接的全局管理。在连接数据库时C++Builder自动创建一个默认会话期,这个默认的会话期处理标准的数据库连接,当应用程序要访问不同网址上的多个数据库表时,就要使用TSession控件,每一个会话连接一个不同网址。各控件在数据库应用体系结构中的位置如图3所示。3数据库名存存储技术现以访问远程数据库为例,说明C++Builder5中连接数据库操作的具体过程:(1)在控制面板中使用ODBCAdminstrator配置驱动程序和数据源。(2)使用C++Builder5中的BDEAdminstrator建立数据库别名,根据所用数据库类型配置相应的数据库驱动程序和数据库连接参数。(3)在应用程序设计中使用TDatabase,TSession(也可不用)和TTable或TQuery数据库访问控件,并在对象查看器(ObjectInspector)的属性页(Properties)和事件页(Events)设置相应的属性和事件。(4)使用数据源控件(TDataSourece)连接数据访问控件,并使用数据感知控件连接数据源控件,实现对数据库中的数据显示和操纵,达到与用户交互的目的。2基于ado组件的数据库连接1ado对象模型ADO的全名为ActiveDataObject,是Microsoft为了解决通用企业数据存取需求提出的解决方案UDA(UniversalDataAccess)之一。此方案包括ADO、OLEDB和ODBC,其中ADO是建立在OLEDB之上的提供较高级的数据库应用程序开发接口模型,它实现了一系列COM接口,通过数据提供者(DataProvider)和数据使用者(DataConsumer)来实现广义的数据存取。ADO对象模型定义了一组可编程的自动化对象,它有6种对象,4种集合。6种对象是:Connetion、Command、Paramter、RecordSet、Fiedld和Property;4种集合为:Fields、Properties、Parameters和Errors。ADO对象模型如图4所示。ADO的实际数据存取操作是通过OLEDB驱动程序访问数据库的,因此ADO适用于各种Client/Server应用系统和基于Web的应用,特别适用于一些脚本语言中数据库访问操作。利用ADO访问数据库的示意图5如下。2tadorecodfig总体概述从图4可以看出,使用最多的是三种对象:Connection、RecordSet和Command。Connection对象用于建立与数据库服务器或其它数据库的连接,在C++Builder5中对应于TADOConnection控件;RecordSet对象主要用于获取、保存、修改从数据库得到的查询结果,在C++Builder5中对应于TADORecodSet控件;Command对象主要用于保存或发送需要反复执行的查询语句或服务器上存储过程调用,在C++Builder5中对应于TADOCommand控件。除TADOConnection为专门的连接数据库控件外,TADORecordSet和TADOCommand也单独支持对数据库的连接。此外数据集控件TADODataSet、TADOTable、TADOQuery也多支持与数据库的连接。TADOTable控件用于单一的表访问;TADOQuery控件实现用SQL语句对数据库表的查询;TADODataSet控件是通过设置CommandText属性命令串对数据源进行操作,它不支持不返回结果集的DML语句,如delete、insert、updata等,要使用这些语句,选择TADOCommand或TADOQuery控件。各ADO控件在数据库应用体系结构中的位置如图6所示。3数据库添加功能的实现在C++Builder5中,ADO控件实质上是一种数据访问控件,许多ADO控件自身能实现数据库的连接,也可以设置其Connection属性为一个TADOConnection控件名,而在TADOConnection控件中设置连接属性,连接属性也可用代码在运行期间设置。现具体说明ADO控件连接数据库的操作过程:(1)在数据库应用程序中,使用ADO访问控件。实现简单的表操作或查询,可以使用TADOTable或TADOQuery;更一般地,可以使用TADODataSet控件;只控制数据库的连接可使用TADOConnection控件;实现复杂的表操作或查询,可以使用TADOCommand、TADORecordSet控件。(2)设置ADO访问控件的ConnectionString属性:点击属性栏中省略号,出现配置窗口,选“UseConnectionString”,按Build钮,在接下来的窗口中选择数据提供者,按Next钮,选择数据库的路径和文件名,点击测试连接按钮,测试成功后,点“确定”钮。也可以在程序运行中动态配置,其代码为:(3)如要对数据库进行操作可利用SQL语句设置CommandText属性或SQL属性及其它一些操作。(4)使用数据源控件(TDataSource)连接ADO访问控件,并使用数据感知控件(如TDBGrid)来实现对数据库中的数据显示和操纵,达到与用户交互目的。3ado与bre开发的比较从以上的分析中我们可以看到,BDE控件和ADO控件在连接数据库时有本质的不同,具体表现为:(1)从连接过程来看,BDE是通过BDE引擎以及ODBC来实现数据库的连接,而ADO是通过OLEDB提供者直接与数据库相连,因而ADO控件提供了一种避开BDE数据库引擎直接与数据库相连的方法。(2)从编程效率来看,由于BDE控件需要配置BDE数据库引擎和ODBC数据源,这种方法不但复杂烦琐,而且由于参数内容不一,配置时令人感到无所适从,不宜把握,因而编程效率低;而ADO提供简单易操作的数据库连接,并具有高度的灵活性,它可以使用相同的编程模式连接到不同的数据提供者,而不管给定提供者的特定特性,因而编程效率高。(3)从连接速度来看,由于OLEDB驱动程序的运行性能比ODBC驱动程序高,加上BDE控件又通过BDE数据库引擎来连接数据库,所以BDE控件的连接速度不如ADO控件。(4)从内存占用率来看,使用ADO控件的内存占用率明显地比BDE控件低。(5)从连接的数据库类型来看,ODBC本身是以SQLServer、Oracle等关系型数据库作为访问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论