请大家就ado,和BDE做各方面的一个比较,比如bde免费,在使用上有什么区别

解决方案 »

  1.   

    转一篇文章,以减少占用篇幅
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=260335
      

  2.   

    我觉得各有优势,要看具体的数据库和需求来选择那种连接方式。//摘自李维《Delphi 5.x ADO/MTS/COM+高级程序设计篇》第一章4. OLE-DB
    随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数
    据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数
    据源可能不是传统的关系数据库,而可能是E x c e l文件,E m a i l或I n t e r n e t / I n t r a n e t上
    的电子签名信息。M i c r o s o f t为了让应用程序能够以统一的方式存取各种不同的数
    据源,在1 9 9 7年提出了Universal Data Access(UDA)架构。U D A以C O M技术为核心,
    协助程序员存取企业中各类不同的数据源。
    U D A以O L E - D B (属于操作系统层次的软件)做为技术的骨架。O L E - D B定义了
    统一的C O M接口做为存取各类异质数据源的标准,并且封装在一组C O M对象之中。
    藉由O L E - D B,程序员就可以使用一致的方式来存取各种数据。
    5. ADO
    虽然O L E - D B允许程序员存取各类数据,是一个非常良好的架构,但是由于
    O L E - D B太底层化,而且在使用上非常复杂,需要程序员拥有高超的技巧,因此只
    有少数的程序员才有办法使用O L E - D B。这让O L E - D B无法广为流行。为了解决这
    个问题,并且让V B和脚本语言也能够藉由O L E - D B存取各种数据源, M i c r o s o f t同
    样以C O M技术封装O L E - D B为A D O对象,简化了程序员数据存取的工作。由于
    A D O成功地封装了O L E - D B大部分的功能,并且大量简化了数据存取工作,因此
    A D O也逐渐被愈来愈多的程序员所接受。
    6. ADO的架构
    A D O主要是让应用程序或We b应用程序存取各种不同的数据源。A D O封装了
    O L E - D B复杂的接口,以极为简单的C O M接口存取数据。图1 - 1是A D O的架构图。
    从图1 - 1我们可以看到,A D O能够藉由O L E - D B存取传统的关系数据库,或F l a t - F i l e
    类型的数据库;也可以存取非传统的数据,例如文字、E m a i l、声音、图形、影像
    等。更可以通过O L E - D B,藉由C o n n e c t o r来存取大型的数据源,例如C I C S等。但
    是不管应用程序要存取哪一种数据源,应用程序都只需要使用A D O,而不需要使
    用各种不同的复杂A P I来存取不同的数据,这样就可以大大简化应用程序员的工
    作。A D O藉由O L E - D B来存取不同数据源的数据,因此程序员要使用A D O技术存
    取数据,就必须搭配使用O L E - D B驱动程序,而且最好是原生的O L E - D B驱动程序,
    而避免使用O L E - D B再加上O D B C驱动程序的架构。
    ……
    由于A D O已经推出了数个版本,因此在稳定性上非常良好,在执行效率上也
    如同当初的O D B C一样有日渐改善的趋势。更重要的是M i c r o s o f t还在不断强化
    A D O,因此,如果读者想在Wi n d o w s平台中开发应用系统,那么使用A D O将会是
    正确的选择。尤其是如果要开发M T S / C O M +的应用系统,那么我强烈建议各位使
    用A D O,避免使用B D E / I D A P I。
    ……
    B D E / I D A P I 一直是D e l p h i 存取数据的引擎。当D e l p h i 在5 年前推出时,
    B D E / I D A P I的确是执行速度非常快的数据存取引擎。比起那时的O D B C来说,
    B D E / I D A P I不管是在功能上还是执行速度方面都比O D B C好。但是随着时间的流逝,
    M i c r o s o f t不断的在改善数据存取的技术,从O D B C、D A O、R D O到现在的A D O。
    虽然经常改变存取技术会造成程序员的困扰,但是M i c r o s o f t也确实改善了数据存取
    技术。因此现在不管是在功能上还是执行速度上A D O不但不输给B D E / I D A P I,甚
    至还表现得更好。B D E / I D A P I在最近已经开始进入维护状态,功能上已经没有改善,
    只是修改一些臭虫或是根据其他数据库厂商推出新的版本时更新BDE/ IDAPI而已。
      

  3.   

    ado 有 基于ADO的ADOX和ADOMD BDE 有没有似的DDL和OLAP工具
      

  4.   

    http://borland.mblogger.cn/jinjazz/posts/20552.aspx About ADOAdo组件:
    TAdoConnection
    TAdoCommand执行无结果集SQL效率较高Insert,update,delete,和部分Sp
    TAdoDataSet,TAdoQuery,TAdoTable,TAdoStoreProc封装RecordSet对象,区别在CmdType不同组件功能:功能  使用方法
    数据感知:需要配合TDataSource+TDbGrid或者TDbControlGrid+TDbEdit等组件
    计算字段:双击-NewField-可以选择三种方式之一
    动态参数:Parameters属性
    主从表:  DataSource,MasterSource,MasterFields属性
    事务管理: TAdoConnection的BeginTrans,CommitTrans,RollBackTrans方法
    缓存更新:CursorType属性KeySet或Static,LockType属性为BatchOptMistic,执行Select语句
    游标定位:Locate方法
    数据过滤:Filter+Filtered属性或者OnFilterRecord属性中的Accept参数
    数据排序:Sort方法
    多表更新:数据感知可以自动处理来自多个join表的数据来源
    Blob对象:使用TADOBlob对象
    存储过程:直接使用
    异步执行:ExcuteOptions属性为[eoAsyncFetchNonBlocking]配合OnFetch...事件
    异常处理:
    Excel:   配置数据源以独占方式打开Excel
    其中缓存更新,多表更新,异步等功能bde不支持
      

  5.   


    BDE是delphi本身带的数据库引擎,从本质上说它是通过这样的形式来处理数据库的:bde application->BDE->sql link->数据库接口(如oracle的net8,但单机版的数据库没这个)->数据库。可以说bde是delphi中最经典的数据库引擎了,从1.0到现在的5.1,bde已进入了维护期,不再出新版本了,当然delphi也出了其它的数据库引擎来弥补其不足,如dbexpress,ado等方式。但其还是有很多人用的。
    ADO本质上说是MS的产品,只是delphi把它封装了成控件的。其原生对象是OLE-DB,也可以说是COM对象。MS为了在市场上占有一席位,一直在改变它的数据库引擎,从ODBC到DAO,RDO,OLE-DB,ADO等不断在改进。现在的ado已可以存取大部分的数据库了。Ado的出现主要是因为OLE-DB的太底层化,而且使用复杂,难于使用,所以MS才推出的。在delphi中可以直接用createOLeObject方法来建立原生的ado对像,然后再调用ado对象的方法或存取它的特性值处理数据。其操作原理是:
    ado application->recordset->ole-db->服务组件->ole-db->数据库因此,OLE-DB的品质好坏就决定了存取数据的速度,这也是为什么我门经常说要升级ado了。Ado在delphi中封装成了一套组件,adoexpress中有各种不同功能的数据控件,基本能实现我们所需的功能了。
    具体的使用建义参考:李维的《delphi5.x Ado/Mts/Com+》高级程序设计篇
      

  6.   

    现在BDE都处于淘汰边缘的
    新的项目基本上不考虑使用BDE的,而且DBE需要安装
    ADO就不需要,所以目前都是ADO应用最广的http://lysoft.7u7.net
      

  7.   

    dbexpress是目前最好的数据库引擎。
    很小,每种数据库只需要一个驱动文件。
    很快速,比ADO要快(因为它不使用COM接口)。
    可以跨平台,.net、Win32、Linux。
      

  8.   

    我也在用 dbExpress ,但你说它比 ADO 还快,我不太能确定。ADO 有些功能 其它引擎没有的。如自增型字段,在增加后自动返回