摘要:討論分析了Delphi中實現三層C/S數據庫應用程序的方法,并舉例進一步介紹基于DCOM協議來建立三層結構中的應用服務器和客戶端應用程序的步驟。
關鍵詞: Delphi;三層C/S數據庫;DCOM協議
中圖分類號:TP311文獻標識碼:B 文章編號:1009-3044(2008)36-3018-02
Three-tiered C/S Database Application Development Based on the DCOM Protocol
YU Liao-hong1, CAO Guo-yong2
(1. Academic of Yichun University, Yichun 336000,China;2. Network Center of Yichun University,Yichun 336000,China)
Abstract: It is discussed and analyzed the way to carry out the application of Three-tiered C/S database application in Delphi and further illustrated the processes to establish the application server and client application in three-tiered C/S structure which based on DCOM protocol.
Key words: Delphi; three-tiered C/S structure; DCOM protocol
1 引言
傳統的2層C/S結構數據庫應用中,系統的業務規則幾乎都要在客戶端進行,隨著系統規模的不斷擴大,企業邏輯日趨復雜,客戶端將不堪重負。為了解決2層C/S結構存在的問題,多層結構應用體系應運而生。多層結構的典型是三層結構,其基本思想是把用戶界面和企業邏輯分離,在傳統的2層C/S結構中放入應用服務器。整體結構如圖1。
2 Delphi開發三層C/S數據庫應用程序方法
Delphi是一種可視化開發工具,支持面向對象開發方法,它提供數據庫引摯BDE、豐富的數據庫訪問和操作控件以及數據庫報表工具,大大提高開發數據庫應用系統的效率。使用Delphi開發一般可以分成3個步驟:1)在數據庫服務器上建立需要的數據庫;2)建立應用服務器;3)建立客戶端應用程序。
數據庫服務器主要由專門的數據庫管理系統實現,使用數據庫引擎BDE來建立應用服務器與數據庫服務器的關系。客戶端和應用服務器端的連接通過DataSnap技術來實現。DataSnap提供了很多種客戶端和應用服務器的連接方法,如Scokect,DCOM,Corba等,分別通過SocketConnection、DCOMConnection、WebConnection三個組件來實現TCP/IP、DCOM、HTTP三種傳輸協議。
3 基于DCOM協議的三層C/S數據庫應用程序開發
建立三層結構應用程序,必須先建立應用程序服務器,并運行注冊之,再建立客戶端。下面通過在客戶端建立一個瀏覽“學生.MDB”數據庫中的“學生信息表”的應用程序來說明建立一個基于DCOM協議的三層結構數據庫應用程序的開發方法(假設在應用服務器上已經設置好BDE連接,并連接到數據庫服務器)。
3.1 建立應用程序服務器
1) 新建一個應用程序,在Form1窗體上放置Table1,DataSource1和DataGrid1三個組件,并按照表1設置組件屬性,Form1的設計界面如圖2。保存窗體和應用程序,窗體單元取名為“ServerUnit”,項目文件取名為“DcomAppServer.dpr”。
2) 增加一個遠程數據模塊,設置它的CoClassName為XSGL,保存取名為“XsglUnit”。并在XsglUnit單元的implementation部分中添加語句:uses ServerUnit;
3) 在XSGL模塊中加入一個TDataSetProvider組件,設置它的DataSet屬性值為Form1.Table1。此時XSGL遠程數據模塊的設計界面如圖3。
4) 在Form1的OnCreate事件中編寫如下程序:
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Active:= False;
Table1.DatabaseName:='XS';
Table1.TableName:= '學生信息表';
Table1.Open;
end;
5) 保存并運行,運行界面如圖4。系統自動將該應用服務器進行注冊,當客戶程序運行時,系統自動啟用應用服務器。
3.2建立客戶端程序
1) 新建一個應用程序,設置Form1的Caption屬性為“學生信息表-客戶端”。
2) 建立數據模塊,并添加TDCOMConnection,TClientDataSet,TDataSource和TDBGrid組件,它們的名稱分別為DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1。程序設計界面如圖5。
3) 設置DCOMConnection1,ClientDataSet1,DataSource1和DBGrid1的屬性,其屬性設置見表2。
4) 在Form1的OnCreate事件中添加如下代碼:
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.Open;
end;
5) 保存并運行,程序運行界面如圖6。
4結束語
在Delphi中可以通過基于DCOM協議、基于TCP/IP協議和基于HTTP協議3中方法來開發三層結構數據庫應用程序,分別通過DCOMConnection、SocketConnection、WebConnection三個組件來實現。其中DCOMConnection組件提供的功能最為完善,配置比較簡單,而且執行效率較高,安全性也比較好。
參考文獻:
[1] 王春紅 Delphi7程序設計[M].北京:清華大學出版社,2004.
[2] 侯太平,童愛紅.Delphi數據庫編程[M].北京:清華大學出版社,2004.
[3] 吳小林,蔣先剛,高艷錦. 基于Delphi的多層數據庫應用系統連接技術的研究[J].華東交通大學學報,2005,1(22):66-70.
[4] 李文生,葉寧.采用Delphi實現三層客戶/服務器數據庫應用程序[J].計算機工程,2000,7(26):170-173.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”