请问大侠,在三层结构中,当一个Client修改了数据,另外一些Client通过什么渠道知道要Tclientdataset.refresh

解决方案 »

  1.   

    容易……建个自定义消息吧,在消息处理中进行同步处理。任何一个Client改变,你就发这个消息……嘿嘿……
      

  2.   

    ljyt(罗云) :
        能不能把你用消息的方法具体描述一下,最好有源码,谢谢!
      

  3.   

    不实际的想法, 在客户数量小时同步可以考虑,但数量一大时,同步就是一个重大的负但了。
    同步可以用 COM/COM+ 事件实现
      

  4.   

    利用程序自动刷新其他所有需要得到最新数据的Tclientdataset
      

  5.   

    程序的自动刷新,但是dbgrid并不能显现出来。
    我是过的,把prvider的阿autorefrensh设为true 但是不管用。
      

  6.   

    ljyt(罗云) :容易……建个自定义消息吧,在消息处理中进行同步处理。别瞎说了,能行我就把机子砸了,信不信?
      

  7.   

    我这样设想,就是在客户端建立一个线程,不断的循环,接受server端的信息,这样做就是不能客户端的数量太大。否则太慢。:)
    如果能知道provider是怎么工作的我们可以在,server向请求更新的客户端发送data包时截获data包,处理后在同时分发,给其他的客户端更新,当tclientdataset接到数据在调用refrensh方法,只要能了解provider怎么样给客户端发送信息,我想应该能做到。
    高手不要见笑!
      

  8.   

    COM 事件的书有不少,可能名称不同会是“回叫”还有一个地方用到 COM 事件,就是 ActiveForm, 原来的 vcl 事件都做了com 事件外套, 你可以new 一个看看, 这种程序真是呵呵难写,一个事件要一大堆代码
      

  9.   

    com真的听难学的,好多的东西都需要掌握,各位高手能不能告诉小弟,应该主要掌握哪些,其他的可以缓缓再说。
      

  10.   

    如果这种应用在你的软件中有很多,你还是别用midas了,它根本不是为实时服务的。