Delphi中MIDAS是什么(MIDAS之一)

2016-02-19 14:18 4 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的Delphi中MIDAS是什么(MIDAS之一),过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

 Delphi中MIDAS到底是什么呢?和他相关组件是什么呢?   MIDAS(Multitiered Distributed Application Services)多层分布式应用服务
     Delphi所提出的Multi-Tier结构是把原来的Two-Tier前台应用程序内的dbExpress,ADO,BDE,SQL Link,DataMoule,拿到另外一台NT服务器(就是所谓的应用程序服务器),而前台程序只剩下一

     个可执行文件及MIDAS.DLL,而移到NT服务器上的DataMoule则变成一个COM程序(Remote DataModule).
     注:前台一定要把MIDAS.DLL发布到系统目录下.
     (1)前台程序会通过调用应用程序服务器提供的方法(接口)提出一个请求
        应用程序服务器会响应这个请求,传送一个相应的SQL命令到后台数据库,而后台数据库会把执行SQL命令产生的DataSet返回给应用程序服务器.
        注:Delphi提供了Type Library来帮助应用程序服务器定义COM方法(接口)
     (2)NT服务器上的COM程序是通过中间软件(dbExpress,ADO,BDE,SQL Link)传送SQL到后台数据库.
        当应用程序服务器要把读取到的DataSet传送给前台时,就必须利用DCOM的机制来进行.Delphi提供的TDataSetProvider组件就会把读取到的DataSet压缩并且分割成一段一段的数据包,通

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

        过DCOM或TCP/IP传给前台.
        注:Delphi提供了RemoteDataModule向导来帮你产生COM程序的结构.
           由于Delphi的程序具有传送DataSet的特殊机制,所以Delphi也实现了一个接口叫做IProvider(即TDataSetProvider),来帮助应用程序服务器上的COM程序发送DataSet数据.
     (3)前台程序与NT服务器上的COM程序是通过DCOM的机制互相沟通
        前台的应用程序是通过MIDAS.DLL和应用程序服务器相互沟通,前台的MIDAS.DLL会把接收到的应用程序服务器发过来的数据包再还原成DataSet,丢给前台程序中的TClientDataSet组件.
        注:前台程序必须提供相应的TClientData组件来和应用程序服务器上的每个IProvider(即TDataSetProvider)对应.用户修改前台数据时,修改的只是Cache(缓存)在前台的Dataset,最后 

         要通过TClientData.ApplyUpdate方法来把前台变动的数据写回到后台数据库中.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1606680.html

延伸阅读
标签: Delphi
Http协议的通信遵循一定的约定.例如,请求一个文件的时候先发送Get请求,然后服务器会返回请求的数据.如果需要进行断点传输,那么先发送HEAD /请求,其中返回的Content-Length: 就是文件实际大小.将其和我们本地需要断点下载的文件大小比较,发送GET请求和发送需要下载的文件开始位置RANGE: bytes=+inttostr(iFilePos)+-+#13#10;服务器如果支...
标签: Delphi
  Delphi作为一种面向对象的可视化开发工具,以其开发程序的高速度和编译代码的高效率越来越受到广大编程人员的喜爱。尽管Delphi已经提供了非常强大的开发组件(VCL),但灵活使用API函数一定可以使你的程序增色不少。 状态键的检查 当今不少流行软件的编辑窗口(包括Delphi的代码编辑窗口)的底部都有一个状态条...
代码如下: Create table Demo_Values (PKID int not null identity(1,1) primary key ,DName Nvarchar(20) null ,DCode NVarchar(30) null ,DDate datetime null ) go --this SQL is only for SQL Server 2008 Insert into Demo_Values (DName,DCode,DDate) values ('DemoA','AAA',GETDATE()), ('DemoB','BBB',GETDATE()), ('De...
eMule中Mod是什么   eMule的源代码是开放的,其中有些人基于源代码开发了修正的版本,称之为Mod,例如eMule Plus。这些版本不被官方的eMule小队所支持。
标签: Web开发
script src=/jslib/jquery/jquery-latest.pack.js/script  p height=1001学习jquery/p spanval()可以取值;val(s)可以赋值/spanbr/ divinput type="text" id="mm" value="mm"button  id=get取值/button button  id=put赋值/button /div button id=an展开/button div id=test...

经验教程

910

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部