客户端及时刷新(200分)

  • 主题发起人 主题发起人 thgerman
  • 开始时间 开始时间
T

thgerman

Unregistered / Unconfirmed
GUEST, unregistred user!
win2000高级服务器版/sql 2000数据库/客户端是win98
我做的一个程序用于生产,我想实现一个功能,当数据库有数据更新时,能让相应的
客户端也相应的更新,以达到数据及时更新的目的,不知道应如何实现,或请提供一些
资料。
 
这样做有一点不好,就是数据传输量会过大,如果有几百台客户端的话,呵呵[8D]
就有你受的了.
 
我想一般有两种方法:
1、客户端主动获取数据。
2、服务端主动发送数据。
 
这样也许可以:
在数据库端有数据表,他的触发器,和一个表示变更的很小的表(只有一个字段,
一条纪录)。
当数据表变更时,更新小表,客户端不断扫描小表,获得数据库变更的消息。如有
变更则从数据表中取得新数据,并更新小表为未更新状态。
当然,如果对都用户时,可以在小表中为每位用户建一条纪录。
 
不用这么麻烦。
用clientdataset,当然是三层。
clientdataset的刷新很好的,只刷新新的数据,你可以在客户端没有操作dataset的时候刷新。
 
这种思路有点麻烦哦。太耗用带宽了。
 
建议让客户端手动更新,虽然麻烦了点。
 
我这是直接用于生产流水线的,流水线操作人员不可能来手动刷新数据,我现在想到的
只是定时刷新,Expert介绍的技巧很好,但我想做实时刷新,即当数据库有更新时,服
务器怎么样主动发数据给客户端,或客户端怎样主动向服务器要数据,总之一句话,怎
样产生一个事件?
 
服务器端维护一个已登录客户列表,当有数据变化时,
服务器端callback客户端的刷新方法,理论上可以,
实现时有点麻烦
 
to lao9你能提供一些这方面的资料吗?
 
接EXPERT:
小表中设一逻辑值,当数据变化时,把小表的逻辑值该为TRUE,当客户端扫描小表时,
做一判断语句,如果小表的逻辑值为TRUE,就执行数据更新,否则客户端返回测试状态。
(注意小表的逻辑值要做相应更新)
 
各位认为B/s结构的客户端可否实现及时刷新呢?
,除了Java
 
客户端手动更新
 
在客户端上设置时钟,进行刷新。
 
在构造服务器的时候构造事件接口
客户端连上服务器端时注册自己的接口,服务器在数据更新时调用此接口
则所有在事件接口注册的客户端均能够收到实现数据刷新
步骤
在构造服务器时选上
[blue]Generate Event support code[/blue]选项
还需要看看
TConnectionPoints 和
TConnectionPonit类
注意Delphi的Help对事件的解释
Check this box to tell the wizard to implement a separate interface
for managing events on your Automation object. The separate interface
has the name ICoClassNameEvents, and defines the event handlers that
must be implemented by the client. Your applicationdo
es not implement
this interface.
 
I write a example about it, i use interface call back to implement broadcast.
who want , write email to me, my email address is yyanghhong@yahoo.com
 
自动更新不好, 要增加很多的的网络访问量
非要这样做, 只能根据客户人数, 设置尽量长的更新时间
 
这个问题我也问过,不过最后结果:一了了之![:(]
 
后退
顶部