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压缩并且分割成一段一段的数据包,通

过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方法来把前台变动的数据写回到后台数据库中.

delphi中midas是什么的更多相关文章

  1. Delphi中ClientDataSet的用法小结

    Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...

  2. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  3. delphi中exit,abort,break,continue 的区别

    from:http://www.cnblogs.com/taofengli288/archive/2011/09/05/2167553.html delphi中表示跳出的有break,continue ...

  4. Delphi中使用比较少的一些语法

    本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ---Murphy 1,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类 ...

  5. 如何在 Delphi 中静态链接 SQLite

    搞了我几个小时,终于成功在 Delphi 中静态链接了 SQLite (v3.5.4),下一步就是研究加密了,呵呵中间其实遇到很多问题,今天累了,就不说了,改天补上 下载测试工程 下面说说方法 1.当 ...

  6. 翻箱倒柜,《Delphi中建议使用的语句》

    (*//标题:Delphi中建议使用的语句整理:Zswang连接:http://www.csdn.net/Expert/TopicView1.asp?id=724036日期:2002-06-22支持: ...

  7. delphi中break,continue, exit,abort, halt, runerror的异同

    delphi中表示跳出的有break,continue, exit,abort, halt, runerror. 1.break 强制退出循环(只能放在循环中),用于从For语句,while语句或re ...

  8. Delphi中window消息截获的实现方式(2)

    Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-orientedpascal)语言,并有强大的数据库引擎 ...

  9. Delphi 中的 procedure of object

    转载:http://www.cnblogs.com/ywangzi/archive/2012/08/28/2659811.html 总结:TMyEvent = procedure of object; ...

随机推荐

  1. Elasticsearch mysql 增量同步

    主要用到了一个JDBC importer for Elasticsearch的库. 想要增量同步,有一些先决条件.首先数据库中要维护一个update_time的时间戳,这个字段表示了该记录的最后更新时 ...

  2. sql ROW_NUMBER() 排序函数 (转)

    1使用row_number()函数进行编号:如 select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Cus ...

  3. ajax的两种方式

    get:var ajax=new XMLHttpRequest();ajax.open('get','__URL__/check_all?val='+check);ajax.send();ajax.o ...

  4. I/O 请求数据包

    MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/hh439638(v=vs.85).aspx 发送到设备驱动程序的大部 ...

  5. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢山西农业大学 - 高正炎同学对 Bugtags 的信赖和支持.小编在这里诚邀各 ...

  6. [转]Android使用WebView从相册/拍照中添加图片

    原地址:http://blog.csdn.net/djcken/article/details/46379929 解决这个问题花了很长时间搜索了解,网上大部分使用openFileChooser但都没解 ...

  7. 介绍Unreal Engine 4中的接口(Interface)使用C++和蓝图

    这个教程是从UE4 Wiki上整理而来. 在C++中直接使用Interface大家应该很熟悉.只是简单先定义一个个有虚函数的基类,然后在子类中实现相应的虚函数.像这样的虚函数的基类一般概念上叫接口.那 ...

  8. 如何用Visual Studio 2013 (vs2013)编写C语言程序 (转)

    http://blog.sina.com.cn/s/blog_964ee6730101jvvi.html

  9. 六十三、android pad

    参照连接:http://blog.csdn.net/guolin_blog/article/details/8881711 http://www.xue5.com/Mobile/Android/708 ...

  10. MSSQL PIVOT 实现行列转置

    create table #temp ( ProdStep varchar(40), ModuleStatus varchar(40), Cnt int ); insert into #temp va ...