clientdataset--DataSetProvider---uniquery三层cds事件触发顺序



clientdataset--DataSetProvider---uniquery
按触发顺序分类
clientdataset1.open时:uniquery.AfterOpen--DBgrid1.OnDrawColumnCell;
clientdataset1.Insert
clientdataset1.Appen
clientdataset1.insertrecord,

clientdataset1.appendrecord时:

clientdataset1.BeforeInsert---clientdataset1.OnNewRecord

 --clientdataset.fields[i] OnSetText->clientdataset.fields[i]OnValidate->clientdataset.fields[i]OnChange
--clientdataset1.BeforePost---clientdataset.post---clientdataset1.AfterPost
--显示界面(不触发dbgrid1.columns[i].OnUpdate)

修改dbgrid1列值时:

dbgrid1.column[i].OnUpdateData----

clientdataset.fields[i]OnSetText>clientdataset.fields[i]OnValidate->clientdataset.fields[i]OnChange

---dbgrid刷新为新值--dbgrid1.ColExit--dbgrid1.ColEnter

总结:cds的事件分前后两类;



TField的事件触发顺序:
显示时触发:OnGetText
编辑时触发:OnSetText->OnValidate->OnChange
(1)OnGetText事件是访问DisplayText或Text时触发。如果数据库中存储的值和要显示给用户看的值不一样,如数据库中存储的是bool型的值,要显示给用户“真”或“假”,可以在这个事件里进行处理。
(2)OnSetText事件是设置字段的值时触发。
(3)OnValidate事件是字段的值写入记录缓冲区前触发。可以在这个事件里对字段的值进行验证。
(4)OnChange事件是字段的值写入记录缓冲区后触发。这个事件经常用到


注意

clientdataset是行提交的:即单光标换行时才发生post方法.这时候发生的顺序是:
clientdataset.BeforePost--clientdataset.post--clientdataset.AfterPost--dbgrid1.ColExit--dbgrid1.ColEnter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值