delphi 数据库技术沉浮录--谨给成为历史的BDE

2014年9月,delphi xe7 出来了,这次在数据库技术方面,彻底抛掉了从1995 年

delphi 1.0 就自带的(Borland Database Engine)数据库访问技术。从而宣告了这个持续

了20余年delphi 访问数据库技术进入历史。

纵观delphi 数据库技术的20年发展史,其实也是delphi 的发展史。通过数据库技术的

变化,也可以了解delphi的发展历史及未来的方向。

一、 话说当初

Delphi 1.0 是16 位的编译器,当时的互联网几乎是不存在,拿到的第一份delphi 1.0 是

那种软件集合光盘(你懂得),在486的win95 上好长时间,才安装好,安装界面是borland

经典的赛车仪表盘窗口。装完以后,就进入了拖拽控件的设计界面,配套的数据库技术就是BDE,

BDE(Borland Database Engine)是borland公司的数据库引擎,它结合了SQL Links允许程序员

通过它能够连接到各种不同的数据库(例如oralce,sybase,sql server等)。最早的 BDE是给

Paradox 用的,后来borland 把paradox 买了,保留了BDE,在delphi 里面就直接使用BDE

作为访问数据库的技术。由于当时真正的数据库服务器还很少,所以开发的数据库还是以本地为主,

数据库为Paradox.由于当时BDE支持paradox 没有中文语言支持,中文出现的是乱码,很是麻烦,

经过多次实验,终于发现使用泰国语言支持可以显示中文(当年中文支持几乎是所有计算机系统头疼的事).

Delphi 2.0 使delphi 进入了32位的世界,而且明确的提出了C/S 的概念。BDE 也正式换成了32位

的,使用BDE 可以顺利的连接访问oracle 和 sql server 数据库服务器。彻底进入C/S 时代,脱离了

单机桌面时代,看到oracle 7.0 数据能够显示到dbgrid 里面,并能够删改,简直兴奋死了。

在delphi 1.0 和delphi 2.0 时代,基本上没有成熟的第三方的数据库技术,属于BDE 垄断的时代。

二、群雄逐鹿

1997 年,Delphi 3.0 的推出,大大稳固了Delphi 的市场地位,已经与比他出来更早的VB,PB 并驾齐驱了。

在Delphi 3.0 中,borland 已经提出了多层的概念及实现方式,而当时C/S 基本上还是完全垄断数据库

市场,经过了好多年,多层技术才被众多的开发者接受,可见当时borland  的牛人多厉害。

delphi 3.0 出来后,delphi  的数据库访问技术在第三方的支持下,出现了百花齐放,主要有三种形式

一种是类似BDE 的,直接支持后台数据库服务器的访问,有支持多种数据库的SQLDirect,zeoslib等,还有支持

单一数据库的,例如ODAC、DOA等。这些直接使用原生代码实现数据库API ,然后访问数据库服务器。

第二种是类似后来的 ADOEXPRESS, 通过封装ODBC、 ADO等微软数据访问技术数据库服务器,典型代表就是

ODBC Express。这两种与BDE 最大的不同就是程序分发时不在安装BDE, 只要安装了数据库的客户端就可以了,

减少了程序配置的麻烦。第三种就是自己实现数据库,用delphi 自己开发一套完整的数据库系统,既可以直接

把数据库功能集成到程序里面,也可以分成客户端与服务器端使用。这一类典型的代表就是Elevatesoft‘s DBISAM

和TurboPower‘s FlashFiler ,还有Nexus Database Systems NexusDB。这些既实现了C/S 架构,

也不用购买昂贵的数据库服务器。非常适合对于中小企业的应用。

这些第三方数据库技术各个都有自己的买点。开发者选择的也很多,有时为了集成一些项目,甚至在一个IDE

上会装上超过5种以上的数据库访问技术。

三、危机四伏

随着delphi 4.0  的仓促推出而失败,delphi 5重新夺回过去的辉煌,同时编译器增加了很多新的功能,BDE 也在

微小更新,第三方数据库访问技术随着时间的发展,技术也越来越成熟。同时服务端的数据库技术也在突飞猛进,

oracle 推出了8i,微软也出了sql server 2000,BDE 却没有大的更新,已经有了昨日黄花之感。

同时BDE的第一次内部危机也随之而来,Borland 要在delphi 6 中加入Linux 的支持,而BDE 是只能支持WINDOWS的,

那么要在delphi 中支持Linux 数据库的访问,BDE是不能用了。于是borland 开发了同时支持windows 和linux 的

DBEXPRESS.同时为了提高多层应用,DBEXPRESS 特意处理了很多多层上问题,与三层技术结合起来,叫了一个非常

牛的名字datasnap。准备做一个企业级的多层中间件。dbexpress 的推出,已经提前宣布了BDE 的命运。

delphi 7.0 的推出,把delphi推到了历史上的最高点,盛极必衰。borland内部开始发生动荡,很多人纷纷离去,支持linux 的

kylix 没有大卖,使得delphi 又回到微软的阵营,先推出了一个历史上最烂的delphi 8 for NET(没有之一),接着推出了历史第二烂的

delphi 2005,导致delphi 的水平过了好几年还维持在delphi 7.0 的水平,错失了市场,错失了时机,delphi 开始衰败。broalnd 内部继续

动荡,也没有太多精力把DBEXPRESS 的技术提高,使得BDE 没有被完全踢出delphi. 当然了BDE 自己也没有任何变化。delphi

业务自己也被borland 分理出来,搞了一个叫codegear 的部门,伺机叫卖。在这期间出了delphi 2006 和delphi 2007,这两个

版本除了IDE 的变化外,还是基本上炒delphi 7 的冷饭,连最基本的unicode 都没有加入支持。

易博龙在delphi 历史最低价的时候出手了,以非常便宜的价格购得了borland 的delphi 及其他开发工具业务。推出了第一个支持

unicode 的 delphi版本 delphi 2009(当然是bug 满天飞)。紧接着就是dephi 2010,delphi xe. 这几个版本主要是就是unicode 的

稳定版,数据库技术这一块除了支持unicode 外,也没有大的变化。

四、双雄争霸

delphi xe2 出来后,虽然开始正式支持WIN64 和mac osx了,但是时不我待,机会已经错过,delphi 的市场已经大幅萎缩,很多第三方数据库技术

要么就是停止更新,要么就是简单的维护,不再做大幅度的更新。数据库服务器访问控件一直更新的基本上就剩devart 的unidac 和da-soft

的anydac.

其实很有意思,这两个公司的数据库访问控件都是从oracle 数据库访问做起的,devart 的第一个数据库访问控件叫ODAC。da-soft 的

第一个数据库访问控件叫NCOCI8, 而且免费的。接着开发出来freedac 也是免费的,后来又推出来商业版的的anydac.而且还在RTC 公司支持下

,开发了一个简单的三层数据库访问框架--Thindac。后来remobjects 公司看上了anydac , 就把anydac 收入旗下,与自己的拳头产品Data Abstract

搭配起来买。后来可能是由于产品发展的方向不一致,anydac 经过不到三年时间,又从remobjects 公司独立出来了。

delphi xe2,xe3,xe4 主要任务是跨平台,开始支持win64,并通过Firemokey 开始支持mac osx,ios。 虽然有一些小的毛病,但是

产品质量已经大大提高.firemonkey 也在不断地优化。当然了,那个 BDE 虽然基本上没人用,还是在那里呆着,作为标准配置,

每次 Delphi 安装时,都被默默的安装到硬盘上。

在所有的第三方数据库控件中,只有unidac  和anydac 及时的更新,快速支持firemonkey,并支持delphi最新的跨平台应用。

因此这一阶段的第三方数据库支持,就剩下这两个开始争霸。这两个各有优缺点,功能也各有千秋。有时确实难分伯仲。

大体上是unidac  支持后台数据库自身功能强点。而anydac 是客户端数据操作功能更完善,更强。

五、王者能否归来?

随着delphi xe5 的发布,发生一件令人瞠目结舌的事情,delphi xe5 直接把anydac 集成进去了,原来易博龙已经

在delphi xe4 时已经把anydac 收入旗下,命名为 firedac. 随着xe5 正式发布。至此,支持多平台的第三方数据库控件就只剩下了

unidac 为主力军。随着delphi 半年一个新版本的快速更新,从今年4月份的 Delphi xe6 到今年的9月发布的delphi xe7,

firedac已经融入了Delphi的血脉之中,不但是作为一个数据库访问层,而且在datasnap 中起了举足轻重的作用,

使用TFDMemTable开始了替换苍老的、众人诟病的 Tclinetdataset  的进程,并在最新的 Enterprise Mobility Services (EMS)

的客户端扮演重要角色。这样 BDE 终于被送进历史的博物馆,结束了20余年的生涯(默哀,一路走好)。

由于firedac 被delphi 直接集成,成了免费的,这样有了delphi就可以直接使用firedac。而且性能与unidac 相近,很多程序员

会直接选择firedac  作为数据库访问层,并开始放弃unidac。 这种情况下,会不会造成unidac 的没落?

这一点个人认为应该不会的,竞争是暂时的,长远来看,更多是双赢:

1.firedac 的更新是随着delphi 版本发布的,也就是说firedac 的新功能只有最新版本delphi  才能使用,

而unidac 支持从d5  到xe7 所有版本,你不用升级delphi 就可以访问最新的数据库功能(好像现在用d7 的人不在少数)。

因此,unidac虽然收费,但是使用面会更宽一点。

2.unidac也有很多功能点是独一无二的(例如无客户端访问oracle数据库),对于一些有这种要求的客户还是会继续

留在unidac  上的。 同时由于 firedac 是免费的,那么为了竞争,unidac 也会加快开发,增加更多功能,对我们来说

其实也是好事。在这一点上,没了unidac, 其实对于开发者来说没有任何好处。

3.作为两大跨平台的数据库访问控件,他们的对手不是彼此,而应该是delphi 以外的企业开发市场,如何利用各自的技术优势

把delphi 的市场做大?让delphi 能够提供更多的功能,支持更多的新兴技术,吸引更多的开发者进来。有了市场,

盘子大了,随便哪一个都会有更多的用户使用,还害怕什么,delphi 3-delphi7  时代就是很好的例子。

4.firedac  与unidac 更应该发挥各自的优点,加强合作。利用firedac 的优势,加强Delphi的datasnap,提高稳定性,增强

更多新的功能(现在已经加强了REST 的支持),提供一个稳定的强大的企业级的中间层。而unidac 也可以利用自身的优势,

提供对新的数据库功能及特性的支持(例如oracle 12c,sql server 2012), 乃至提供对nosql 数据库的支持,来加强

delphi 企业级开发的优势。如果把两者的优势结合起来,就可以开发出功能强大又支持各种新技术的企业级的数据库应用。

让delphi 走向辉煌,重回王者之位。

不破不立,旧的不去,新的不来,BDE  走了,firedac 来了,新的delphi 携带者多平台开发也来了,你准备好了没?

备注:1、由于本人年纪已老,记忆力下退,文中很多东西都是按记忆写的,可能年代和名称会有错误,欢迎指出;

2、由于本人年纪已老,思维僵化,如果你认为我的观点不对的地方,就不要指出了,指出我也不改。

时间: 2024-10-05 08:49:41

delphi 数据库技术沉浮录--谨给成为历史的BDE的相关文章

转:Delphi数据库技术中Disablecontrols和Enablecontrols的功能

Delphi数据库技术中Disablecontrols和Enablecontrols的功能  2010-12-06 10:48:43|  分类: delphi技术 |  标签:disablecontrols  enablecontrols   |字号大中小 订阅 一般来说,用来扫描整个数据库表并修改每个记录的某一个字段的程序如下所示:with Table DobeginDisableControls;{在修改记录的过程中,使其它部件无效}First; {将记录指针指向第一条记录} while n

Delphi数据库技术中Disablecontrols和Enablecontrols的功能

一般来说,用来扫描整个数据库表并修改每个记录的某一个字段的程序如下所示: with Table Do begin DisableControls;{在修改记录的过程中,使其它部件无效} First; {将记录指针指向第一条记录} while not EOF do begin <读取记录的一个字段值到一个变量中> <做适当的修改> Edit; {将TTable部件置成编辑状态} <将修改后的字段值写回到其对应的字段> post; {将修改后的记录写回数据库} next;

Delphi数据库处理

Delphi数据库处理 第一节 BDE.ADO.InterBase和dbExpress Delphi中处理数据库主要有两种方法,也就是BDE.ADO,从Delphi 6.0开始还加入了一种dbExpress方法.另外,Delphi还提供了专门处理Borland 公司自己的数据库产品InterBase 数据库的专门的方法. BDE(Borland Databas Engine),是Delphi中最古老的技术,从delphi 2.0加入BDE 技术以后,一直是Delphi处理数据库的事实上的标准.B

大数据挑战与NoSQL数据库技术pdf

下载地址:网盘下载 内容简介 编辑 <大数据挑战与nosql数据库技术>对大数据时代面临的挑战,以及nosql数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解需求,并更有针对性.有选择地深入学习相关知识.[1] 目录 编辑 第1章概论1 1.1引子2 1.2大数据挑战3 1.3大数据的存储和管理5 1.3.1并行数据库5 1.3.2NoSQL数据管理系统6 1.3.3NewSQL数据管理系统8 1.3.4云数据管理11 1.4大数据的处理和分析11 1.5小结13 参考文献13 理论篇

《C#语言和数据库技术基础》单词必备

<C#语言和数据库技术基础> 第一章1..NET Framework   框架2.sharp            尖锐3.application      应用程序4.developer        开发者5.network          网络6.build            建造,建筑7.console          控制台8.debug            调试9.namespace        命名空间10.project         项目11.solution 

2012年数据库技术大会演讲PPT打包

 2012年数据库技术大会演讲PPT打包 DB2 Overview of Disaster Recovery Options.pdf: http://www.t00y.com/file/76767890 DB2锁问题处理最佳实践.pdf: http://www.t00y.com/file/76767892 GOS-MySQL-development.pdf: http://www.t00y.com/file/76767896 IBM Big Data Platform.pdf: http:/

对数据库技术的发展及SQL数据库的认识

一.数据库管理技术的发展 数据库技术就是研究如何科学的管理数据以便为人们提供可共享的.安全的.可靠的数据的技术.数据库技术包括数据管理和数据处理两部分内容.     人工管理阶段 20世纪50年代中期以前,计算机主要用于科学计算.在这一阶段,计算机除硬件外,没有管理数据的软件,数据处理方式是批处理.数据的组织和管理完全靠程序员手工完成,      此阶段数据的管理效率很低,其特点如下.      1. 数据不保存 此阶段计算机主要用于科学计算,并不对数据进行其他操作,一般不需要将数据长期保存,只

c#和数据库技术基础之程序设计集散地-数据库

数据库,不明觉厉,今天我们就来数据库的神秘面纱 1.使用数据库的必要性 随着互联网技术的高速发展,截止到2013年我国网民的数量已接近6亿,网民数量的增长同事带动网上购物,微博,网络视频等新产业的发展.那么,随之而来的及时庞大的网络数据量. 大量的数据正在不断产生,伴随而来的事如何安全有效的存储,检索,管理他们.对数据的有效存储,高效访问,方便共享和安全控制问题成为信息时代一个非常重要的问题. 使用数据库可以高效且条理分明的存储数据,它是人们能够更迅速和方便的管理数据,主要体现在以下几个方面.

数据定义未来——2016数据库技术大会总结

背景 作为国内数据库与大数据领域最大规模的技术盛宴,2016第七届中国数据库技术大会(DTCC)如约于2016年5月12日-14日再度震撼来袭.大会以"数据定义未来"为主题,云集了国内外顶尖专家,共同探讨MySQL.NoSQL.Oracle.缓存技术.云端数据库.智能数据平台.大数据安全.数据治理.大数据和开源.大数据创业.大数据深度学习等领域的前瞻性热点话题与技术.本届大会共设定2个主会场,25个分会场,并将吸引5000多名IT人士参会,为数据库人群.大数据从业人员.广大互联网人士及