WEB开发网
开发学院软件开发Delphi 三层结构的设计模式 阅读

三层结构的设计模式

 2006-02-04 13:41:14 来源:WEB开发网   
核心提示:.一般简单的三层结构设计方式: Remote Data Module服务器 数据库Query组件DataSetPRovider组件客户端应用程序DCOM组件ClientDataSet组件 现在一般介绍三层结构大多数使用上面的数据模型进行讲解,通过DataSource组件连接ClientDataSet组件,三层结构的
.一般简单的三层结构设计方式:

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;

Tags:结构 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接