高手们急进,delphi开发数据库的并发机制问题,大奖!!!(200分)

南柯

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个多层数据库软件遇到了一个问题:设有很多个客户端,当在一台机器上修改数据库
记录时,同时在另外的客户端要反应出来,比如我做一个医院或者电力,电信这样的大系统时
一个客户端修改了一笔记录,而这笔记录对于另外相关的客户端来说很重要,他们应该立即知
道,所以应立即反应到相关的客户端去,试想这样的大系统记录都是几十万上百万条,更本不
允许刷新数据库得到更新的数据,否则是极影响效率的,久闻大富翁盛名,请高手们指点,本人
不胜感激,可以e_mail(nan*ke@sina.com) 告诉我.
 
利用ado的动态游标
 
有一个折衷的方法,如果要修改重要的数据,可以由A客户端向别的客户端发送消息,而不用通
过数据库。
 
你程序系统设计是怎么样的,别的客户端知道了又如何,是防止修改还是根据最新的修改内容
进行管理处理?
如果是要根据最新的进行处理,可以用有数据感知功能的控件应该就可以满足,当然,处理上
还有许多烦琐的事。
 
向其他客户发送广播消息
 
微软的MSMQ消息系统组件是否能解决,请看相关资料!!!
 
由中间层应用服务器通知不行吗?
 
在 clientdataset 以commandtext 形式进行传输时对server中的provider的
afterpost进行处理,可以在系统服务器端处理 commandtext的时候进行控制,
同时向其他的client发送相对应的信息
 
这都不是解决问题的好办法
急!急!急!
请问哪位高手知道吗????????!!!!!!!!
 
我在前面专门提了类似的问题,似乎都不感兴趣或认为这样做不合理。
如果只是显示,可以做一个udp的通信程序,在数据库的触发器里调用并向客户端发送
转换为字符串的记录集,但如果是并发的修改就很麻烦了。
或者定时把关键的数据集刷新到服务器的一个临时表里,然后各客户端定时读这个临时表?
 
记得BDE有个回调函数,好象可以完成类似的功能。但记不清名字了。:)
 
ado的动态游标
 
这样的功能好像不太容易实现,因为类似服务器接受改变后要向客户端“Push”数据,不符合
C/S 的概念,C/S 是由客户端主动请求,类似“Pull”的模式!
因此我建议你改变你的设计方法!
 
我记得我回答过类似的问题
做成四阶层的
 
关注,我目前用的是客户端到客户端,再做相应的操作。
 
多人接受答案了。
 
顶部