回答朋友关于DBExpress的问题

阅读更多

朋友,你好

  DBExpress是Borland公司推出的基于单向数据集的数据库引擎技术。因为是单向数据集,因此连接数据库非常的快。在Borland看来,DBExpress被期望用来取代BDE和ADO。

  到目前为止,DBExpress支持如下数据库,至于更新的版本有待测试:

  Inerbase7.5
  MSSQL2000
  Oracle9i2
  DB2
  MySQL
  PostgreSQL
  Sybase ASE 12.5
  Informix

  上述的几种数据库已经经过我的测试,看来是好用的。

  DBExpress技术包括DBExpress组件技术,DBExpress驱动程序和DataSnap技术。使用DBExpress技术,一定要用DataSnap,否则便失去了DBExpress基于多层分布式技术的意义。

  由于DBExpress是单向数据集技术,因此,直接使用它只能从前向后访问记录,不可逆转。于是在Delphi7中,增加了一个TSimpleDataSet组件,用它来暂时的满足两层结构的直接数据集访问。

  但是,这并不是Borland推荐的方式。事实上,DBExpress+TSQLConnection+TSQLQuery+TDataSetProvider才是最好的访问方式。对于两层结构而言,采用TClientdataset之类的客户数据集连接TDataSetProvier,就可以了访问数据库了;对于三层或者多层结构而言,你必须在客户端采用DataSnap连接组件,比如Dcom,Corba,Tsocketconnection等,然后采用Tclientdataset等客户数据集连接该组件,通过该组件连接服务器上的某个tdatasetprovider。这样就可以满足你的所有数据库访问需求了。

  因此,无论是几层结构,Borland始终推荐采用上述DBExpress+TSQLConnection+TSQLQuery+TDataSetProvider的方式访问数据库。

  遗憾的是,Borland公司的优秀技术永远超前于其市场拓展能力。DBExpress终究敌不过Ado.net,除了在Delphi2005中继续提供支持外,Borland似乎更看好不太成熟的支持.net的BDP(Borland Database Provider)技术。

  不过,我还是喜欢DBExpress,至少在win32下,它是最好的数据库访问引擎。

  需要提醒的是,你必须要熟悉dbxconnection.ini文件,在你的应用系统中动态装载它,这样才能灵活发布。此外,每一种数据库都有一个dbexpress驱动:

  db2: dbexpdb2.dll
  informix: dbexpinf.dll
  interbase: dbexpint.dll
  mssql: dbexpmss.dll
  mysql: dbexpmys.dll/dbexpmysql.dll
  oracle: dbexporal.dll
  sybase: dbexpsyb.dll

  上述驱动不可缺少,Borland并未完全提供,你可以去网络上下载。

  建议:你最好做一个构件,把DBExpress访问数据的方式封装起来,只需要初始化这个组件并且访问其中某个方法,就可以了。

  祝你成功。

你可能感兴趣的:(Borland,Sybase,数据结构,DB2,Informix)