多层数据库中,数据一致性问题(100分)

  • 主题发起人 主题发起人 marry
  • 开始时间 开始时间
M

marry

Unregistered / Unconfirmed
GUEST, unregistred user!
两个客户端同时进行数据处理。甲方数据删除并保存数据后,乙方数据怎样更新(Refreash后,乙方数据并未更新)。这种一致性问题是MIDAS技术已经处理还是需要程序再处理,具体怎样处理?
 
要自己处理的。
如果有错误 clientdataset1.upplyupdates(0);
回返回错误信息
如果要重新获得最新数据,只有CLOSE/OPEN 了
 
问题可能提的不太清楚,比如说甲乙两方同时对同一记录进行操作,甲方在删除记录,乙方此时只能浏览该记录(我是这样认为的),可现在乙方正在修改并保存,两方同时进行,此时双方该怎样处理该记录,数据库中应为何种状态?
 

问题可能提的不太清楚,比如说甲乙两方同时对同一记录进行操作,
甲方在删除记录,乙方此时只能浏览该记录(我是这样认为的),
可现在乙方正在修改并保存,两方同时进行,此时双方该怎样处理
该记录,数据库中应为何种状态?
 
没办法解决的说:"(
在C/S中,可以对记录加锁(如果DBMS支持)
但在多层中……就没什么办法了。
 
我原来是这么实现的:
当有人在浏览改记录时,该记录的一个标志字段置1,若有其他客户端
再调改记录时,就只能以只读方式进入,并给以必要的提示。
 
你可以试试用ado,set cursor type=Dynamic 然后设Tdatasetprovider
的Autorefresh=true.
 
你门提的全不对,在DELPHI中有一个HandleReconcileError, 请仔细看DELPHI自带的帮助和例子
 
在两层中用事务处理就行了,在三层中只好设一些标志位自已判断了。
 
可以在后台数据库上作一个 事物处理吗!
FENCER: 三层时 不能用吗?
 
cj 是clientdataset1.applyupdates(0)
marry 这须事务处理来解决。
设置。datebase 的tranisolation 属性
有些记不清回来在说
 
呵呵,多层用事务满烦的:(
marry
 
设置。datebase 的tranisolation 属性
tidirtyread 许可读其他事务对数据库尚未提交的修改。
tireadcommitted 许可读其他事务对数据库已提交的修改。
tirepeatableread 不如许读其他事务对数据库的修改。
本地数据库必须设为 tidirtyread;否则会出错。
 
后退
顶部