应该可以这么做,可是最好有多个tquery.

解决方案 »

  1.   

      仅仅是查询完全可以!同多个QUERY没什么本质区别,
      其实每个客户端取得查询数据都是执行应用服务器的一个方法,而这个方法中具体指明用哪个QUERY来执行查询语句,那么在某一时刻究竟由哪一个存在于远程数据模块上的QUERY执行这个查询语句有区别吗?所以只要有一个QUERY就可以满足所有的查询. 
      个人观点,仅供参考.
      

  2.   

    我觉得不太好,如果在客户端在PacketRecords不设为-1而设为20,当用户又开了另一个查询窗口
    查询,在假如窗口是非模式,允许切换
    而后当客户端返回上一个查询在获取下一个数据包时,那么数据就会是第二个查询的数据
    产生的数据就会乱了,这也就破坏了中间层的状态信息
    而又当中间层为Shared Server模式
    多个客户端共享一个服务器实例
    除了将PacketRecords设为-1,一次取得所有数据
    要不然也会发生数据的混乱,
    个人观点
    大家继续讨论
      

  3.   

    xzgyb(老达摩):我同意你的这个意见。
    我再补充一点:
    多处共用一个TQuery的情况我们称之为这个TQuery为临时Query。
    可以用临时Query的情况是:
    在一个事务中用,用完就完了,如果这个Query查出的数据在本过程完之后还要使用。
    就最好不要用临时Query.
      

  4.   

    同意,
    对了
    songlichao兄
    我想问一下一般的中间层都用的是什么实例模式
    我感到用iSingleInstance,虽然多个客户端公用服务器实例,但要使中间层必须为无状态对象
    编起程序来太麻烦
    而用iMultiInstance,每启一个客户端都要启动一个服务器实例
    而且这两天居然出现服务器内存不够的错误提示
    我感到有些困惑,请教一下。。