两种方案:
1、TDatabase的HandleShared设为True。
2、用一个TSession,一个TDatabase,Session的AutoSessionName设为True,TDatabase的SessionName设为当前TSession的Name。其它设置不变。
两个方案可以任选一种。

解决方案 »

  1.   

    两种方案:
    1、TDatabase的HandleShared设为True。
    2、用一个TSession,一个TDatabase,Session的AutoSessionName设为True,TDatabase的SessionName设为当前TSession的Name。其它设置不变。
    两个方案可以任选一种。
      

  2.   

    to chechy(chechy)
    方案一是每个线程都动态创建一个Session吗?如果是那Session该如何设置?
    方案二是多个线程都使用一个Session吗?
      

  3.   

    1、不需要。
    2、不是,需要动态创建。但是,由于设置了AutoSessionName,就不用担心出问题了。
      

  4.   

    在资料上看到说,如果用多线程进行同步查询则每个线程都需要一个Session,
    chechy(chechy) 的说法是不用多个Session,那位大侠给解释一下?
    to chechy(chechy) 您的做法适合与多线程的同步查询吗?TDatabase的HandleShared设为True是起什么作用?
      

  5.   

    我的方案二和你看的资料的方法是一回事。
    这样的一个坏处是消耗资源太大,同时过多的连接对连接的License也有要求。
    我的方案一,资源消耗比较小,但是线程多了,便会造成阻塞。因为和数据库的通道只有一个TDatabase,大家都共享这一个。
    好了,足够多了。
      

  6.   

    非常感谢chechy(chechy) !!!