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