【摘要】隨著數(shù)據(jù)庫網(wǎng)絡化編程的廣泛應用,C/S(Client/Server)編程的地位越來越重要。利用Delphi提供的網(wǎng)絡套接字組件(Socket),可以輕松實現(xiàn)C/S系統(tǒng)的編程。
【關(guān)鍵詞】C/S;Delphi;Socket
1.基于C/S的體系結(jié)構(gòu)
利用Delphi提供的套接字組件(Socket)組件來實現(xiàn)一個C/S系統(tǒng)數(shù)據(jù)庫的編程,核心組件是TServerSocket和TCientSokcet組件,這兩個組件將分別處在兩個窗體上——即客戶機和服務器上,其中客戶端程序?qū)⒗肨ClientSocket組件實現(xiàn)對服務器端數(shù)據(jù)的提交,而服務器端程序則通過利用TServerSocket組件對客戶端程序發(fā)送的數(shù)據(jù)進行分析和驗證,然后返回客戶端一個成功信息。通過該程序,可以讓數(shù)據(jù)庫的修改操作駐留在客戶機上進行,而對于數(shù)據(jù)則必須通過服務器端的驗證才能通過。
2.C/S系統(tǒng)編程的基本步驟
本文需要建立兩個工程,一個用于客戶端程序用于數(shù)據(jù)輸入,另一個用于服務器端作用數(shù)據(jù)存儲。
1)新建一個工程,用來開發(fā)客戶端程序,在客戶端,需要用到一個數(shù)據(jù)源,其中主要包括一個公司的各種信息,包括Company、Address、Email、State、Country、Contact、Compid等字段,在進行程序開發(fā)前,需要建立這樣的一個數(shù)據(jù)源。
2)在客戶端程序程序中,注意Compid字段的值不是有用戶添加的,需要通過服務器驗證后由服務器端返回,所以在客戶端程序中,改字段為不可操作狀態(tài),并注意在創(chuàng)建數(shù)據(jù)源時設(shè)置為可為空。
3)在客戶端,組件的核心方法是在“發(fā)送所有數(shù)據(jù)”按鈕的單擊事件中處理的,在該事件中,需要用戶添加的數(shù)據(jù)信息發(fā)送到服務器端,可以通過創(chuàng)建一個字符串對象來保存該信息,然后調(diào)用ClientSocket1空間的SendText方法將該信息發(fā)送出去,在該字符串列表中,所保存的數(shù)據(jù)信息是以”fieldname=fieldvalue”格式保存的。
4)在Actions上右擊,在彈出的快捷菜單上選擇“Add Item”命令,添加一個ActionItem,可以在ActionEditor中看到該對象的各種屬性。在網(wǎng)絡模塊中,事件比較少,各種方法的實現(xiàn)都是基于ActionIcem來實現(xiàn)的,其中最重要的事件就是OnAction事件。
5)為了實現(xiàn)對訪問次數(shù)的實時更新,需要記錄下原來網(wǎng)頁訪問的次數(shù),然后再網(wǎng)頁每次打開時自動導入,在本程序中,將建立一個text文件對象,利用Writeln方法可以往其中寫入瀏覽次數(shù),當網(wǎng)頁打開時,則利用Readln方法從文件中將原來的數(shù)據(jù)提取出來:
Logfilename:=’weblog.log’;
System.Assign(logfile,logfilename);
Try
If fileexists(logfilename)then
Begin
Reset(logfile);
Readln(logfile,nhit);
Inc(nhit);
End
Else
Nhit:=0;\
Rewrite(logfile);
Writeln(logfile,nhit);
Finally
Close(logfile);
End;
Response.content:=inttostr(nhit);
6)現(xiàn)在一般的網(wǎng)頁計數(shù)器都采用圖形來顯示數(shù)據(jù),通過建立一個TBitmap對象可以讓程序繪制內(nèi)存位圖并返回給前端網(wǎng)頁。讓后將該位圖附在TjpegImage對象上,在通過該對象將圖片轉(zhuǎn)換為流式對象,保存該流式文件對象,讓后將它賦給Response對象,讓后利用Response對象將該文件寫入網(wǎng)頁文件中。
7)保存該工程文件。為了看到實際效果,可以建立一個html文件,在該文件中,建立一個超鏈接,指向所開發(fā)的程序。在瀏覽器中瀏覽該文件并打開鏈接,就可以看到程序的最終結(jié)果。
3.結(jié)束語
總之,隨著數(shù)據(jù)庫網(wǎng)絡化編程的越來越重要,C/S編程的地位在不斷的提升,本文通過實例說明了C/S編程的實用性和可行性。
參考文獻
[1]網(wǎng)冠科技.Delphi 5.0控件時尚編程百例[M].機械工業(yè)出版社,2001,07.
[2]劉藝.Delphi程序設(shè)計大學教程[M].機械工業(yè)出版社,2005,06.
作者簡介:劉暢(1978—),現(xiàn)供職于吉林工商學院信息工程學院,研究方向:計算機網(wǎng)絡。