1、是不是每个客户端的cds都要对应服务端的的一个dsp?
--当然不是,dsp只是提供数据访问的接口,这个接口可以被固定占用,当然也可以用来
提供临时的数据包。一般来说,只有当进行大数据量访问时(比如上百万条记录分包取数),
进行有状态连接,才需要固定的dsp. 另外,客户端通过cds频繁修改提交数据时,也可以采用
固定的dsp, 只因为这样比较方便罢了(很多书都是这样举例的)。
2、如果是的话,那么对一个比较大的系统,在服务端不是要好几百个dsp?
--根据情况而定。
3、如果真的要那么多dsp的话,是不是可以考虑用多个RDM,要如何实现?
--根据情况而定。
4、关于updatemode的三种模式,从以往的帖子来看,用upwherekeyonly可能会比较好,但用这种的话
必须要去更改每个providerflags,这不是偏麻烦了点?也有高手说直接写sql语句进行更新,
而不是让dsp去自动处理,这不是更麻烦了(在下偏懒,哈哈)?有没有什么更好的方式?
--对于固定结构的表,可以在服务端预先设置好,如果是动态的数据集dsp,采用默认的upWhereAll即可。
upWhereAll提供精确定位的查找方式,upWhereKeyOnly提供按指定字段定位的方式,没有什么好、比较好之说。
5、还有就是c/s(adoconnection、adoquery)到我上面说的三层的转变有没有什么比较好、比较快速的方法?
--没有,任何投机取巧的方法都会产生后遗症和隐患。
6、服务端(Server)有两个RDM,A跟B
A里面有adoconnection、dsp1、qry1
B里面有dsp2,qry2
B引用A,
服务端的两个qry都是连接A的adoconnection。
。。。
--概念错误!没有什么"B引用A"的说法,RDM是类,而类是不能引用的,
正确的说法是:B的那一个实例引用A的那个实例,
“没有connection的错误”实质是指B的实例对应的RDMA的实例没有被创建。
其实adoconnection控件可以放在服务端随便什么地方,唯一要做的是,
你必须保证中间层的A或B的实例被创建前,那个承载了adoconnection控件的单元被实例化了。