天天看點

為什麼要選擇UniDAC

說到資料集元件,大家也許會首選ADO,然後說BDE太老了,DBX不敢用。其實delphi優秀的資料集元件真不少,除了上訴的資料集元件,還有ZEOSDB、SQL Direct、UniDAC等,要是專業的資料集元件,更是百花盛開,如FIBPLUS、SDAC、ODAC、DOA等等,商業和開源不盡其中!這裡隻讨論UniDAC和ADO的一些比較。 Delphi能發展到現在,和一些著名的第三方控件廠商大力支援分不開,這其中包括Devart公司(Corelab)公司。Corelab公司做資料集驅動非常出名,就拿ODAC、SDAC和DBX驅動來說,已經遠勝其他同行的第三方控件公司。UniDAC是Devart公司最近的力作,将ODAC、SDAC、IBDAC等驅動綜合內建在一塊。UniDAC無論是做三層還是兩層,都遠勝于ADO。下面說一些UniDAC的優點: 1、非常完美的支援多資料庫的資料集套件。這一點,ADO也支援多資料庫,但ADO除了MSSQL驅動之外,其他驅動支援的非常差。就拿Oracle驅動來說,在調用oracle複雜的存儲過程參數,總是或多或少有些問題;MSSQL企業管理器如果用了第三方驅動(比如是oracle),在導入導出資料也尚存在問題!更别提不是主流的IB資料庫驅動。UniDAC支援Oracle、MSSQL、MYSQL、IB/FB、PostgreSQL。 2、對三層特性支援非常好!也許你也會問,三層也是通路DB,ADO也支援啊?!但三層最好方式是無狀态方式,在高并發的進行中,一般不允許本地有資料集緩存。ADO沒有單向資料集特性,所有的資料下載下傳到本地,不停的開辟記憶體或釋放大記憶體,對三層的記憶體是一個極大考驗。TUniQuery有一個UniDirectional屬性,支援單向速度,這點和DBX的想法不謀而合。況且,單向資料集特性速度非常快,在三層中,配合TDataSetProvider,中間件将其Data包發送到用戶端,速度無可比拟。ADO也有流或XML格式包,但無論是XML或流格式,資料包遠比CDS的包大幾倍。CDS封包技術很好! 3、一些非常有用的屬性或方法。常言道,細微之處見體貼。UniDAC有一些過人的方法或屬性。比如,重新整理單條記錄(RefreshRecord)、多表更新的屬性(UpdatingTable)、宏替換參數(Macros)、內建删除/新增/修改/重新整理/鎖定SQL語句、FetchRows,更讓人稱道的是引入了UpdateSQL元件。 在處理MSSQL新增後的自增字段,和ADO一樣可以直接自動傳回自增字段值,這一點,BDE不能做到、DBX不能做到、ZEOSDB不能做到。更令人稱奇是,配合TUniUpdateSQL,還能自動傳回自增字段值。 TUniUpdateSQL是一個好東西,ADO缺少TUdateSQL運作模式,預設的更新機制是主鍵字段+已變化的字段做where條件。在一般情況下是沒問題,但如果這個表沒有主鍵或where條件中的字段小數位很長導緻誤餐,就會産生更新找不到記錄。TUdateSQL可以保證這點,運作靈活又透明。 4、對oracle支援非常好。别的不說,光是一個oracle連接配接的Direct Mode,不用安裝oracle官方肥碩用戶端(網上也有精10M左右簡版的用戶端),隻要客戶機支援TCP/IP協定即可。如果用ADO連接配接Oracle,必須保證先安裝oracle用戶端,還要配置連接配接檔案,一堆繁瑣事情。UniDAC對oracle支援的非常完美,和專業化的DOA差不多! 當然,最大的缺點是,非常貴,最貴的檔次,差不多可以買半套的D2009!