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

来源:互联网 发布:陕西省广电网络营业厅 编辑:程序博客网 时间:2024/05/22 14:43


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
原创粉丝点击