三层系统 用adoconnection 连接Sql2000adoconnection 放在 Remote data module当有N个客户端启动后
查看SQLServer 的进程信息会看到有N个相同的进程信息
既每一个客户端都会使应用服务器与Sqlserver建立一个连接
我这样理解
 多层结构并不能减少Sqlserver的数据连接
请大家多多指点
如果在应用层添加个DataModule 将adoconnection 放在那
Remote data module 引用datamodule 中的adoconnection sqlserver中连接就会只有一个
但当一个客户检索大的数据是(2万条)其它的客户端检索保存数据时就会出现很长时间等待甚至造成客户端死掉
多层结构中能使用ADO的异步执行模式吗?
我的客户端Clientdataset 没有指定 datasetprovider
应用层
 datasetprovider.data=>OleVariant
客户端
 clientdataset.data:=OleVariant 

解决方案 »

  1.   

    adoconnection   不能放在   Remote   data   module
      

  2.   

    我看了很多文章都未提到adoconnection 的位置
    而在delphi5.x ado/mts/com+ 高级程序设计中 示例中adoconnection 是放到 Remote   data  module 
    我也觉得 adoconnection 是放到 Remote   data  module 违反用多层结够的初衷
          
      

  3.   

    可以看一下delphi的demo中midas目录下有一个例子叫pooler,就是对三层结构remote date module的一种封装技术,用连接池技术来解决多个客户端访问的问题。因为remote date module本身是有状态的连接,你如果不释放连接,连接会一直保持,用连接池后,每次都会释放连接,这样保证效率。
      

  4.   

    结贴了
    看了连接池的例子它的线程模式是Free打开输入法程序就死掉
    用池可已实现客户端多线程查询或更新数据