用RDSConnection,还是DCOMConnection、SocketConnection?(200分)

  • 主题发起人 主题发起人 qdyoung
  • 开始时间 开始时间
Q

qdyoung

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构下客户端使用RDSConnection连接服务器,可以直接用ADODataSet访问服务器,发布时不用发布Midas.dll等?各位有没这样用过,有没有什么不好?
 
为什么要用三层结构呢,特别是用delphi做三层结构?
用delphi做三层结构一点都体会不出错性能
个人观点
 
服务器端用MTS
客户端可能最多200
 
我倒是知道一种做法
用MTS/Com+,基本完全放弃Midas,
服务段也不用delphi的ADOExpress,直接使用与原生的ADO对象
客户端和服务端用_Recordset传输,
这样的好处是
1.话客户端可以不用Midas.dll,
2.没有了压包,解包,速度肯定比Midas快
3.因为ASP可以操作_Recordset,
这样的话你服务器上的企业逻辑可以让ASP重用!!!
不好的地方很多代码自己写,也没有ApplyUpdates了
 
RDSConnection和ADODataSet好像就是封装的_Recordset
 
问题是delphi的ADO的bug太多,一定用ADODataset的话,不如用BetterADODataset
 
我用ADO连接SQLServer、Oracle都没有出现过问题,三层下还不知道
 
关注一下。我也希望能找到一套可行的不用MIDAS的多层架构,但可惜我们用的主要是Oracle数据,在COM+应用中,用ADO不灵。
 
三层困难多多,
COM+ 也不怎么好弄,往往会出现注册COM+失败的问题!
 
我试过:
1. 服务器端用TMtsDataModule,生成dll后加入 服务器组件(win2k管理工具进入)
客户端:使用DcomConnection、ClientDataSet连接成功
2.使用RDSConnection.AppServer获取TMtsDataModule定义的返回RecordSet的方法赋值给ADoDataSet.RecordSEt也可以显示服务器端的表,不过要写代码,而且像shiningplus说的不能ApplyUpdates
 
除了SocketConnection外,其它两个都可以用。
SocketConnecton需要Scktsrvr.exe程序支持,而且如果服务器端不使用TMTSDataModule的
话,类工厂也要编码注册SocketTransport。
用DCOMConnection跟RDSConnection差不多,都是把服务器的数据集取过来,只是形式不一
样罢了,前者使用TClientDataSet对应DataSetProvider,后者则是ADODataSet
对ADODataSet(或者更简单地使用_Recordset)
按需要选择吧。
 
其实,如果不想用Midas的可以考虑第三方的,如Astar,RemObject SDK
就是都要付钱
据说RemObject SDK不错,可以用TCP,UDP,HTTP可以用binary,也可以soap
 
多人接受答案了。
 
后退
顶部