SQL Server2000,
服务端是RemoteDataModule + ADOConnection + DataSetProvider
客户端是SocketConnection + ClientDataSet,问题如下:
1,A客户增加了一条记录,怎么让B客户那里马上显示,难道一定要放个Timer定时刷新?
2,A在修改或者删除一条记录,B也在修改或者删除同一条记录,这里的异常是怎么处理的?请大家能具体放点代码,谢谢了。
服务端是RemoteDataModule + ADOConnection + DataSetProvider
客户端是SocketConnection + ClientDataSet,问题如下:
1,A客户增加了一条记录,怎么让B客户那里马上显示,难道一定要放个Timer定时刷新?
2,A在修改或者删除一条记录,B也在修改或者删除同一条记录,这里的异常是怎么处理的?请大家能具体放点代码,谢谢了。
不过你既然是2层的做成这样是不是有点复杂化了,直接用adoconnection连数据库做不行?
不换数据库,则恐怕得自己写一个Socket机制来干这个,或者用timer。当然,也可用dcom的push特性,在服务器端注册一个Event Sink,不过这么做也不简单。
按你的做法,就是用户新增或修改了数据,点击保存,随即发送一个操作消息到服务器,服务器向其他各个客户端再发送消息来刷新,那么,如果很多人都在新增或修改数据的话呢?? 特别是你这边正在修改而另外一边却已经发送了刷新的消息来了(或同时修改一条记录),你如何处理??(当然,这个可以考虑用锁来解决,但问题是当一个人点击修改某条记录,却迟迟没有点击保存,那么其他的人就都不能再处理该数据了),所以建议用定时刷新,比如客户端每5秒,adoquery.requery一下就可以了