我经常回碰到midas的错误,所以想对它多了解一些,请大家帮忙!

解决方案 »

  1.   

    MIDAS的全称是Multi- tier Distributed Application Services Suite(多层分布式应用程序服务包)。Delphi所有强大又奇妙的分布式多层能力都来自MIDAS的功能。 MIDAS是Delphi多层应用系统的技术核心,是Delphi用来开发多层应用系统所使用的中介透明引擎。通过MIDAS,程序员可以使用相同的组件存取不同的后端应用程序服务器。这些后端应用程序服务器可以是COM/DCOM应用程序服务器,MTS中介软件,或是CORBA应用程序服务器。此外MIDAS也提供了容错能力,负载平衡能力以及高执行效率的能力。 在MIDAS的多层应用系统中,应用程序服务器会输出一个Provider接口到客户端应用程序。在这个接口中提供了许多的方法可以让客户端应用程序调用,以便和远程的应用程序服务器通讯,并且处理数据。在多层应用系统中,客户端应用程序和远程应用服务器传递的数据形式是一种称为“数据封包(DataPacket)”的数值。这些数据包括应用程序服务器传递给客户端的数据,客户端更新的数据,以及在更新数据时发生的错误和造成错误的数据都是以数据封包传递。由于MIDAS有效率的使用网络传递数据,并且会压缩传递的数据,所以在执行速度上比起两层的客户机/服务器结构在效率上提高了很多。MIDAS可以使用的通讯协议有三种,分别是 TCP/IP、DCOM和OLEEnterprise。这三种不同的通讯协议各有优缺点,使用的通讯协议结构也不一样。图2示出了MIDAS使用的三种通讯协议结构图。不同的通讯协议使用的通讯层都不一样,但都必须使用TCP/IP Socket和Microsoft RPC。 使用DCOM和OLE Enterprise比起TCP/IP通讯协议都多了一个通讯层,当DCOM和OLE Enterprise都提供了比TCP/IP更多的功能。
    基于MIDAS的多层应用程序需要用到一些特殊的组件,大致分为四类: 1)对象库中的远程数据模块:远程数据模块与Delphi中普通的数据模块有些相似,不同的是,远程数据模块可以做为COM服务器或CORBA服务器,让客户程序访问它的接口。 2)TdataSetProvider组件和Tprovider组件:这两个组件用在应用程序服务器端,主要作用是提供Iprovider接口,客户程序通过Iporvider接口获得数据和更新数据集。 3)TclientDataSet组件:是一个从TdataSet继承下来的但不需要BDE的组件。 4)MIDAS连接组件:包括TDCOMConnection、、TOLEEnterprise-Connection、TsocketConnection这些连接组件的作用是为客户程序定位服务器和Iprovider接口。 在一个通常的MIDAS程序中,一般应在客户应用程序方的数据模块(DataModule)或窗体(Form)中放置TclientDataSet组件和TDCOMConnection组件;而在应用服务器方放置TdataSetProvider组件、Ttable组件或TQuery组件。这样就构成了最简单的MIDAS程序模式。通过配置和调试,可以实现应用程序方和服务器方的连接。 
      

  2.   

    主要错误及解决方法:
    1),可以考虑在客户端和服务器内uses midaslib单元,这样就不用发布midas.dll文件了。
    2),或者在程序里用代码注册 也可以winexec(’regsvr32 c:\windows\system32\midas.dll‘,SW_show)