隨著Internet/intranet的發(fā)展,多層應用和分布式瘦客戶數據庫應用程序逐漸得到廣泛應用。在多層應用的開發(fā)方式中,Delphi提供了Midas構件,第三方提供了Asta 、Midware等。經過使用,相比較而言,Asta所提供的構件易學易用方便靈巧,客戶端程序無須任何數據庫引擎或動態(tài)連結庫即可方便的實現多層應用,且客戶、服務器可實現實時信息傳輸?梢哉f,Asta為普通程序員提供了無須專門培訓即可成為復雜多層應用程序開發(fā)高手的簡單途徑。
1. 認識Asta
象普通的Delphi構件一樣,在Delphi環(huán)境下安裝Asta即可看到該頁標上有AstaClientSocket 、AstaClienDataset 、AstaServerSocket 、AstaDataSet 等構件,其中關鍵是AstaClientSocket 、AstaClienDataset 、AstaServerSocket。其中,AstaClient由一個AstaClientSocket 和至少一個AstaClienDataset 組成。AstaServer的核心是AstaServerSocket。Database可以是現在流行的任何數據庫產品,如Sybase 、Informix 、MS-SQLserver等。
2. 如何實現多層應用
Asta本身帶有兩個例子服務器程序,一個是BDEserver,另一個是ODBCserver。這兩個服務器程序設計的很完善,稍加改造(漢化)即可直接使用。我們使用BDE服務器。 本例以Paradox本地數據庫為例,說明如何開發(fā)客戶端軟件。
2.1 運行BDE服務器程序,出現數據連結窗口,彈開組合框選擇別名BDEDEMOS,確定。
2.2 進入Delphi環(huán)境,建立新應用netapp.dpr,窗體上分別放置AstaClientSocket1、AstaClienDataset1。AstaClientSocket1的Adress屬性填入服務器程序所在機器的IP地址。若服務器程序在同一臺機器上,則IP地址默認為127.0.0.1。Port屬性與服務器程序端口一致(若服務器程序未作改動此值為9000,當然也可選用其他數值)。AstaClienDataset1的屬性與一般數據表Ttable相同,首先選擇DataBasename屬性,然后選取tablename。最后把Active 設為true(相當于執(zhí)行了SQL語句:Select * from [tablename])。本例中tablename選取employee.db。
3. 把結果表現出來
同一般數據庫應用程序一樣,在窗體上放入Datasource1,其Dataset屬性設為AstaClientSocket1,放入DBGrid,其Datasource設為 Datasource1,則簡單客戶程序就完成了。
運行此程序即可看到數據表格。此客戶端程序無須任何動態(tài)庫即可在客戶端運行,是完全的瘦客戶。需要注意的是,AstaClientSocket的ConnectAction屬性有多種選擇,分別規(guī)定了客戶端到服務器端的連結狀況,大家可分別試試看有何結果。至于安全性設置、實時信息傳遞,可參閱隨機幫助文件。