请教c/s中的数据访问冲突问题(50分)

  • 主题发起人 主题发起人 san_fish
  • 开始时间 开始时间
S

san_fish

Unregistered / Unconfirmed
GUEST, unregistred user!
c/s模式下有可能存在着多个client同时对一条记录操作的情况,但在MS-SQL服务器上并不
允许一条记录刚被更新又被另一个client修改,他会弹出个错误信息。
问题:如果我想在服务器上的数据库被更新时通知各个client刷新数据,该如何解决?


thx!!!!
 
很明显,这是关于游标的问题,
建意你设置数据集参数为服务器端游标,且为动态游标
 
如果实时性非常强, 可以在客户端每隔几秒自动刷新, 修改记录最好使用BatchOptimistic模式
然后用try处理UpdateBatch,失败则cancelbatch
 
学习啊~游标
 
看了两天书还是不大明白
555555
求救求救
 
to WilliamGui & Z_JJ:
按李维的那本书,batchOptimistic模式下是得设置为静态游标,并且CursorLocation必须
设为clUseClient
这样的话,在我理解正确的前提下,你们两的讨论不就互相矛盾吗??
请赐教
bow
 
ps:再说具体一点,如果一旦有记录被update,那么立即通知各个客户端刷新记录
如何解决:
除了定时扫描是否有记录被update(如用一个Timer)之外
还有没有其他的办法
 
只有用timer来实现。
但是,为了更合理地使用,最好能够提供变化标志表,这样在定时器中不必去查询可能
会有大量源数据的表的状态。

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1243410
 
接受答案了.
 
后退
顶部