Delphi中经常出现的词汇是ADO,BDE,dbExpress等等,那么他们之间到底有什么异同呢,Delphi中的数据库引擎又到底有多少种呢?也许应该从整体上把握一下,才能有的放矢.
Delphi一共提供四种数据程序的设计标准,分别是Borland Database Engine(BDE),ActiveX Data Object(ADO),dbExpress,InterBase Express.
(1)Delphi的BDE是一个在窗口环境下的32位数据库引擎.它也提供一组API函数,这些API函数可以通过动态链接文件使用任何语言去调用,或者你也可以直接使用Delphi提供的BDE组件来使用 这些API.BDE提供SQL Links来链接六种后台数据库SYBASE,InterBase,ORACLE,MS-SQL,Informix,DB2,如果后台数据库不是前面提到的六种,可另外购买ODBC Drivers来链接其他种类的数 据库,在Local(本地桌面数据库)部分,支持Paradox(*.DB),dBase(*.DBF),Microsoft Foxpro,Microsoft Access等,还提供了一个单击版的InterBase,让你在单机的环境下,可以模拟主从 数据库的开发.如果用Delphi开发出来的程序有使用到BDE,则必须将BDE安装在用户的计算机上,Inprise公司是不收取任何费用的.
(2)微软以COM的标准实现出的OLE DB,用来取代ODBC的角色,作为其访问数据库的中间软件,而ADO则是OLE DB的最上层,它是用来让Windows应用程序调用的接口(Inteface),其实ADO只是MDAC 的一小部分,MDAC的全名位Microsoft Data Access Components,MDAC办好了所有Microsoft的数据库访问技术,如:ADO,OLE DB,ODBC,RDS(Remote Data Service),所以你只要安装MDAC后, 上面提到的各种数据库访问技术都会安装进来,用ADO开发的软件,则必须将相应版本的MDAC安装在用户的计算机上,可以免费下载(http://www.microsoft.com)
(3)由于BDE的访问效率不佳,而且SQL Link驱动程序编写不易,平台移植困难,所以Delphi体重另一种数据库访问中间标准dbExpress,Borland公司针对各种数据库编程写出dbExpress的原生驱 动程序(dbExpress Native Driver),并且封装出一组dbExress组件.dbExpress具有数据访问效率快及平台转移容易的优点,由于BDE自己本身有一套数据库引擎,所以它会维护数据库查询 出来的cursor,因此访问效率较差,而dbExpress从数据库Fetch(提取)出来的DataSet,是Undirectional cursor,因此访问效率比BDE好很多.而且dbExpress提供的Native Driver标准容易 编写,可移植性高,目前已经有Linux版本的dbExpress.
(4)Delphi还提供了一组原生组件InterBase Express让你可以直接,快速地王文InterBase数据库,这组IBX组件封装了InterBase所提供的API,其访问效率甚至高于BDE及dbExpress,唯一的缺 陷是它专署于InterBase Server,并不适用于其他数据库服务器的访问. 在Delphi的光盘中,包含了一套关系数据库系统:InterBase,这条InterBase必须安装在Windows NT技术的操作系统 上,Borland公司免费提供这套数据库系统的用以在于,让你只需要先购买Delphi的Enterprise版就可以勾践一套完整的主从结构系统,当你开发完整套应用程序之后,你可以再选购其他种 类的后台数据库系统.由此可知,这套InterBase Server是给开发者使用的,而不是给用户,所以如果你把这套InterBase直接分发给多位用户,那么将违反著作权法,如果你真相使用
InterBase当作主从系统运行的后台数据库,你可以向Borland公司购买正是的版本.
注:Delphi自带的数据库维护工具Database Desktop无法修改SQL数据库的表结构(如MS-SQL,ORACLE,SYBASE),它只能修改Local数据库的表结构(如dBase,Paradox,Foxpro,Access).
相关文章
- 10-17关于使用mybatis查询数据库中的id总是为0的原因
- 10-17实体类属性名和数据库表字段名不对应的几种情况以及解决方式
- 10-17物理引擎中velocity的单位是个什么鬼?
- 10-17Delphi中的Sender:TObject对象解析
- 10-17Delphi的Edit控件中只能输入数字且只能输入一个小数点
- 10-17Delphi中的日期加减
- 10-17python中查询数据库时fetchone()函数和fetchall()函数的区别
- 10-17使用excel 生成模拟的姓名添加的数据库中
- 10-17Delphi中Inputbox 和Inputquery 函数的使用
- 10-17Java编程中数据库中取出的值判断