1,这些日子用JAVA来做开发,经常使用APPSERVER提供的连接池,在DLEPHI中如何使用这个呢?一个DATAMOUDLE是不是提供这个呢?
2,一个多线程程序中,使用同一个DATAMOUDLE里的同一个ADOCONNECTION,怎么实现连接池呢?会有问题?

解决方案 »

  1.   

    多个线程之间肯定不能使用同一个DATAMOUDLE
      

  2.   

    在delphi中要使用多线程,所有的数据控件都要new出来。不然会完蛋的。
      

  3.   

    Delphi的数据库连接池要自己建。
    Delphi的三层线程连接也要自己建。
      

  4.   

    1,我写的是SOCKET SERVER,阻塞方式,对每个连接新开一个THREAD来处理;如果CLIENT长时间不操作,将关闭这个SOCKET,THREAD也将结束。
    2,每个THREAD都需要自己的CONNECTION,所以,在THREAD里需要动态的CREATE一个ADOCONNECTION来进行处理,然而用户连接如果很频繁的话,对数据库的压力会比较大,所以考虑使用连接池来处理。
    3,这个连接池考虑使用TTHREADLIST来处理,重载CREATE方法,加入池中的连接数和最大连接数;在创建的时候就取得连接,采用ADOCONNECTION的KEEPCONNECTION方式;增加两个方法
    FUNCTION  GETCONN(VAR I:INTEGER):TADOCONNECTION;
    从连接池中得到一个连接,并取得标记号;
    PROCEDURE  REMOVECONN(I);
    把这个连接归还到池中;
      

  5.   

    对,应该用线程缓冲池,就像RDM三层缓冲池一样
      

  6.   

    多个线程查询数据库要使用多个DATAMOUDLE,这样才安全和高效
      

  7.   

    demo里midas目录下好像有例子,不知道是不是你要的?
      

  8.   

    两颗红星来问的问题。 不懂! STUDY