程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 三層結構的設計模式

三層結構的設計模式

編輯:Delphi
.一般簡單的三層結構設計方式:

   Remote Data Module服務器      

   數據庫

   Query組件

   DataSetProvider組件

   客戶端應用程序

   DCOM組件

   ClIEntDataSet組件

  

   

   現在一般介紹三層結構大多數使用上面的數據模型進行講解,通過DataSource組件連接ClIEntDataSet組件,然後通過數據感知控件連接DataSource組件,來進行對數據庫數據的訪問。這樣就使得數據庫服務器、應用服務器和應用程序之間的聯系過於緊密,如果其中一個做了改動,其他的都要跟著改動,對於系統的升級與維護帶來很多不便。

2.新的三層結構設計模式:

   Remote Data Module服務器         數據庫 Query組件 DataSetProvider組件 客戶端應用程序 DCOM組件 ClIEntDataSet組件


上面是我們現在采用的三層結構模式,它不通過DataSetProvider組件來傳遞數據,而是通過Remote Data Module服務器所提供的Interface來進行數據的傳遞。這樣就使得應用程序完全與數據庫服務器沒有任何關系,對整個系統的升級與維護都帶來極大的好處。 對於集合數據,由於Interface的返回值可以是OLEVarient類型,因此我們可以創建ClIEntDataSet來進行集合數據的傳遞。 3.部分源程序 //函數1:創建ClIEntDataSet procedure CreateCds(const Ds: TDataSet; var Cds: TClIEntDataSet); var   I: Integer; begin   Cds := TClIEntDataSet.Create(nil);   for I := 0 to Ds.FIEldCount - 1 do   begin     with Cds.FieldDefs.AddFIEldDef do     begin       Name := Ds.FIEldDefs[I].Name;       DataType := Ds.FIEldDefs[I].DataType;       if DataType = ftAutoInc then         DataType := ftInteger;       Size := Ds.FIEldDefs[I].Size;     end;   end;   Cds.CreateDataSet; end; //函數2:給ClIEntDataSet負值 procedure TransData(const Ds: TDataSet; var Cds: TClIEntDataSet); var   I: Integer; begin   if Ds.RecordCount > 0 then   begin     Ds.First;     while not Ds.Eof do     begin       Cds.Insert;       for I := 0 to Ds.FIEldCount - 1 do         Cds.FielDs[I].Value := Ds.FIElDs[I].Value;       Cds.Post;       Ds.Next;     end;   end; end;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved