朋友,你好
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访问数据的方式封装起来,只需要初始化这个组件并且访问其中某个方法,就可以了。
祝你成功。
一幅凝固的油画