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