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. error: L6235E: More than one section matches selector - cannot all be FIRST/LAST

    解决措施http://blog.csdn.net/chenbang110/article/details/7586244

  2. 函数指针_typedef

    一 函数指针 1 函数类型 函数的类型由它的返回值类型,和形参类型共通过决定,与函数名无关. eg:bool lengthcompare(const string&, const string ...

  3. Django 之 models的 F() 和 Q() 函数

    前提: app名称为core,models.py 如下: #coding: utf8 import datetime from django.db import models class Order( ...

  4. 修改sys密码与nbu备份脚本密码后,nbu备份报密码无效

    公司要求口令强化,在修改sys密码后nbu的.sh脚本connect备份归档的sys/passwd也随之修改修改后每个业务备份均失败, 每次备份到归档那里就结束报密码无效,疑惑备份脚本密码也同步修改了 ...

  5. 【VB6】打印机设置页边距

    Printer.ScaleLeft = - Printer.ScaleTop = - Printer.CurrentX = Printer.CurrentY = '一些打印操作 Printer.End ...

  6. Sqlserver 自定义表类型定义,使用,删除

    --创建用户自定义表类型CREATE TYPE dbo.CustomerTable AS TABLE ( Id int NOT NULL, Name char(10) NULL, PRIMARY KE ...

  7. 【原创】loadrunner12.53 录制脚本时 打不开网页或者打开网页慢?

          问题描述: 之前刚装12.5版本时候,用 WebTours测试过,应用程序选择自己本地IE浏览器.exe程序,输入url地址就可以成功录制了 . 但是由于公司网络配置环境改变了(猜测),现 ...

  8. Chrome 浏览器提示adobe flash player不是最新版本

    百度下载最新版. 刷新 Chrome浏览器.更换其他的浏览器. 刷新过后,无效. 打开Flash Player 检查安装的版本. IE会链接到官网. 对应自己的系统.找到自己用的浏览器.看是否一致. ...

  9. IE11错误:Exception in window.onload: An error has occuredJSPlugin.3005 解决方案

    问题:新安装的IE11无法使用F12开发者工具,DOC资源管理器提示错误“Exception in window.onload: An error has occuredJSPlugin.3005”. ...

  10. WEB文件上传漏洞介绍解决办法

    引用:http://blog.csdn.net/kobejayandy/article/details/35861499 问题: -1. 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传 ...