朋友,你好
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訪問數據的方式封裝起來,只需要初始化這個組件并且訪問其中某個方法,就可以了。
祝你成功。
一幅凝固的油畫