1、AdoConntion.ConnectionString='.....';
     AdoConntion.connected :=True;
     AdoQuery1.Connected:=AdoConntion;
     AdoQuery2.Connected:=AdoConntion;
     AdoQuery3.Connected:=AdoConntion;
     ....
     这些是放在RDM的RemoteDataModuleCreate()事件吗?
     如果是的话,是否每个连接发生时就Connected一次(产生多个连接事例)?   
     不同的客户同时用ADOQuery1连接不同的表操作数据库会不会发生问题?
      2、客户端用ClientDataSet来操作远程数据库和用 AppServer 方法操作数据库,
     这2种方法有什么不同?哪种好?我全部用ClientDataSet的CommandText的
     Open或Execute来操作是否只是假3层?  3、我在客户端用ClientDataSet做了一个简单的查询后,服务器的内存增加,
     当我ClientDataset执行Close后并关闭程序,服务器的内存并没有降下来,
     再运行客户端连接,服务器的内存又增加,这个服务器的内容就一直往上涨,
     这是什么回事?应该如何处理这个问题?(我用的是SockConnect连接方式)  4、连接占线导致另外一个命令 是什么原因造成?该如何克服?

解决方案 »

  1.   

    1 、就是每个连接发生时就Connected一次,但是由于DataBase Connection pooling的原因,并不是每个连接就连接一次数据库
    2、不推荐客户端直接用ClientDataSet直接连接某个DataSetProvider来操作远程数据库,因为那样的话体现不出三层的优势。而且尽量不用CommandText。正确的开发模式是在中间层定义若干接口,接口中定义若干方法,然后客户端调用这些方法执行业务逻辑。我曾经开发过一个三层物流系统
    ,您可以参考一下。请到我的网站下载:http://lingke.nease.net
    3、不知道,估计是程序编的有问题,内存泄漏。
    4、听不懂。
    =========================
    欢迎光临国内第一个Delphi原创资源站点,原创源代码,原创控件:http://lingke.nease.net
      

  2.   

    谢谢
     在RemoteDataModuleCreate()连接AdoConnection后,要不要在RemoteDataModuleDestroy()
     里写: AdoConnection.Close=false?
      

  3.   

    1、AdoConntion.ConnectionString='.....';
         AdoConntion.connected :=True;
         AdoQuery1.Connected:=AdoConntion;
         AdoQuery2.Connected:=AdoConntion;
         AdoQuery3.Connected:=AdoConntion;
         ....
         这些是放在RDM的RemoteDataModuleCreate()事件吗?
         如果是的话,是否每个连接发生时就Connected一次(产生多个连接事例)?   
         不同的客户同时用ADOQuery1连接不同的表操作数据库会不会发生问题?
        
    如果你放这里就是的,MIDAS并不自动Pooling  2、客户端用ClientDataSet来操作远程数据库和用 AppServer 方法操作数据库,
         这2种方法有什么不同?哪种好?我全部用ClientDataSet的CommandText的
         Open或Execute来操作是否只是假3层?这样客户端就可以随意操作数据了,流程、安全应在中间曾实现  3、我在客户端用ClientDataSet做了一个简单的查询后,服务器的内存增加,
         当我ClientDataset执行Close后并关闭程序,服务器的内存并没有降下来,
         再运行客户端连接,服务器的内存又增加,这个服务器的内容就一直往上涨,
         这是什么回事?应该如何处理这个问题?(我用的是SockConnect连接方式)不知是D几,D6以前的版本SockConnect连接方式有BUG,不过这种情况应该是你写的程序问题  4、连接占线导致另外一个命令 是什么原因造成?该如何克服?
    每个线程创建临时的一对TADOConneciton和TADODataSet(或类似的数据集存储控件),而不是用全局的
      

  4.   


      1--如果每个连接的客户都要 Create RDM 并 Create New AdoConnection.Connected
      那么如果客户多了,比如200个,那不是要Create 200 次?那系统顶得住吗?  2--1G的内存够用几个连接?
      3--Pooling怎么实现?