DCOM连接就是爱出这毛病,还是建议用socket连吧!省事!!
另附上抄录自WWW.INPRISES.COM - 男儿有志当凌云网站文章:
::多层结构连接方式选择的分析::
Borland公司的MIDAS让我们能用Delphi构建强大的多层分布式数据库系统,MIDAS提供了很多种的客户程序和中间层的连接方式,如:Sockect,DCOM,Corba等等,这么多的方式,在开发多层体系的时候我们应该如何选择呢,下面我就简单的介绍一下这几种连结方式。
Socket:
Sockect无疑是最容易配置的连接方式。而且Socket只使用一个端口来进行通讯,这样如果在拥有防火墙的系统中,管理员会更乐意接受Socket因为配置通过防火墙的Dcom是相对麻烦的事情。在安装中间层的机器上,只要运行SCKTSRVR.EXE就可以和客户端建立Socket的连接了。但是Socket并不支持早联编(early-binding)
COM和DCOM:
COM/DCOM 提供了核心的NTLM的安全性和验证机制。在COM/DCOM里面我们可以很轻松地使用早联编(early-binding)、 回调机制(callback)和连结点机制(ConnectionPoints)。 但是它的不利因素就是配置客户端的DCOM和让DCOM透过防火墙(FireWall)相当麻烦。
MTS:
MTS能够为分布式的系统提供数据库连结池、事务支持,便于分发等优点,在它基础之上的COM+(Windows2000已经提供了这个服务)组合了COM和MTS的功能。MTS的缺点就是对处理使用BDE的多用户应用的事务处理支持很弱。当然ADO不在这个范围啦
CORBA:
CORBA是一个跨平台的开放式标准(特别是在很多的JAVA应用中,因为他们都是跨平台的产品),通过VisiBroker(很著名的ORB系统),配置比DCOM方便多了。Borland不久前发布的IDL2Pas的产品使得我们可以编写Delphi的客户端轻松的访问CORBA组件。CORBA本身的负载平衡、命名服务和事件服务可以让开发者构建更稳定和扩展性强的分布式系统。缺点是我们在开发CORBA得系统中不能完全地使用早联编;为了支持COBRA客户端需要分发额外的文件如borlndmm.dll, cp3245mt.dll, midas.dll,orb_br.dll,orbpas50.dll;Delphi不是能够使用全部的VisiBroker的功能,比如以服务方式运行的OAD和GateKeeper