我正在进行一个软件开发,涉及到一个多个客户端访问一个数据库的问题,就是每个客户端都维护了一个表的备份,
每个客户端又都可以操作(增删改查)这个表,我想要问的是,
我想当一个人改变这个表后,让同时连接服务器的其他客户端接受到数据库的一个消息(触发器实现??),
然后响应事件自动获取最新的数据,怎么实现?
我用的是.net2.0 winForm C# 和DB2

解决方案 »

  1.   

    可以实现,在数据表上配置Update,Insert和Delete的触发器,有修改就存入另外的一张表,记录修改的方式和内容(加上修改的时间戳),客户端对此修改表进行轮询,有新内容就作相应的操作。直接编码获得触发器的信息我还没有见过这么做的。
      

  2.   

    不过楼主要注意不是所有数据库操作trigger都可以响应,比如truncate什么的,如果只有楼主的程序操作该数据表,那么这个问题应该是可控的。DB2的trigger没有做过,SQL Server上应该很容易做到。
      

  3.   

    server端的信息一般通过event,log等方式实现通知.
    或者在server端设置一个程序专门负责此事,但是实现起来很有难度.
      

  4.   

    SQL Server 2005 Service Broker.
      

  5.   

    感觉用sqlserver的通知服务也许可以,正在做这方面的事。可以试试。