TProvider与Query的OnUpdateRecord/OnUpdateError的处理有什么不同?(100分)

S

sahala

Unregistered / Unconfirmed
GUEST, unregistred user!
至少,DataSet参数一个是TDataSet另一个是TClientDataSet(没有了
UpdateObject属性). 谁能详细描述一下吗?
主要是我对MIDAS下服务端处理多用户操作数据库冲突心里没底。
先谢了!
 
对不起,很久没有连上来。现在刚刚看到您的问题
TProvider中有DataSet属性,
TQuery中只有DataSource属性,没有DataSet呀?
关于OnUpdateError,Delphi的帮助中说:
对于TQuery,当把cached updates提交的时候出现异常就会调用这个handler,
出现异常的原因可能是别的程序已经修改了所提交的这一段数据。
对于TProvider, 当提交ClientDataSet的updates到数据库服务器是出现错误
就会调用这个handler,对于每个发生错误的记录都会调用一次这个handler.
 
关于TProvider中的OnUpdateData,当Provider收到了ClientDataSet的updates,
提交给数据库服务器之间会调用这个handler,用户可以在这个handler里面
检查数据或者修改数据。
关于TQuery的OnUpdateRecord,使用在一个简单的Update Component无法处理的场合,
例如实现层叠的更新,插入和删除。或者用在需要参数替换等更高级的控制的场合。
对每个记录,系统会调用这个handler,用户可以分别控制如何处理当前的记录。
 
谢谢。我主要想仔细了解在MIDAS服务端如何处理Provider的OnUpdateError事件。
比如更新模式选为UpWhereAll时,第一个客户端更新了一条记录,第二个客户
更新这条记录的任何部分都会触发这个事件,也就是说在多个客户的情况下如何
在服务端纠错而不是用客户端的OnReconcileError(比较差劲,只能cancle),
delphi的手册里几乎没有讲这个主题!
我现在只是把更新模式设为upWhereKeyOnly,然后简单镇压delete 已经删除的
记录/insert已经存在的记录而导致的OnUpdateError了事。
 
OnUpdateError返回错误信息,你可以用msgbox调用它们
OnUpdateData 返回数据更新信息,不过我没用过
 
还给你 40
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
498
import
I
I
回复
0
查看
611
import
I
顶部