送分题(如何触发Provider.BeforeUpdateRecord事件?)(30分)

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

milan

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个初学者,请问各位高手:
在什么情况下,将触发Provider.BeforeUpdateRecord事件?
 
在你的ClientDataSet中做出修改,(注ProviderName写明是Provider)
比如Insert、Edit、或者是Delete;
然后ClientDataSet.ApplyUpdate(0);
这时你的Provider.BeforeUpdateRecord事件就触发了,

case UpdateKind of
ukInsert:
ukDelete:
ukModify:
end;
判断
 
我用clientdataset.insert后
...........
再clientdataset.applyupdates(0);
然后在DataSetProvider1BeforeUpdateRecord事件中写入测试值,
并没有反应。好象没有触发DataSetProvider1BeforeUpdateRecord事件
我把代码改成clientdataset.updaterecord;后也没有触发,
这是什么原因?
 
在datasetprovider中需要设置什么属性吗?
 
//我用clientdataset.insert后
//...........
//再clientdataset.applyupdates(0);
//然后在DataSetProvider1BeforeUpdateRecord事件中写入测试值,
// 并没有反应。好象没有触发DataSetProvider1BeforeUpdateRecord事件
有没有clientdataset.post
 
post我也测试了。
clientdataset.insert;
.......
clientdataset.post;
也没有反应。
 
这个问题没人答吗?再顺便问一个问题,把分给结了。
请问各位高手:
我在applyupdates(0)后,如何在服务器端取消此操作?
 
是我的问题太简单,不屑答吗?
 
clientdataset.insert;
.......
clientdataset.post;
最后还要
clientdataset.applyupdates(0);
 
在客户端递交后的操作 当ApplyUpdates后就触发了DataSetProvider的OnUpdateData
在它之前和之后都可以通过BeforeUpdateRecord和AfterUpdataRecord来做很多修改操作了
Provider连接的是后台的表了,所以此时你用Table或者Query来做更新操作,也就是把客户端传上来的数据在这里对Table(Query)来进行你想做的操作
别忘了把Applied设定为true
 
Applied属性指的是什么?
设为true或false个有什么影响?
 
如果你在BeforeUpdateRecord事件中自己处理了更新就把Applied设为true,否则就是由Provider更新
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
946
DelphiTeacher的专栏
D
D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
884
DelphiTeacher的专栏
D
D
回复
0
查看
671
DelphiTeacher的专栏
D
后退
顶部