首页 >> 民生新闻

程序级触发器功能的实现牛

民生新闻  2021-08-24 13:36 字号: 大 中 小

在Delphi的数据集控件中,提供了类似关系数据库管理系统中触发器功能的事件机制----\"触发器类\"事件。灵活使用数据集控件的此类事件,能够实现\"程序级的触发器\"功能,以加强数据的完整性检验。

以Delphi中表数据集为例,其相应的\"触发器类\"事件:

事件名称 说明

BeforeInsert, AfterInsert 插入记录前后调用的事件

BeforeEdit, AfterEdit 前后调用的事件

BeforePost, AfterPost 保存数据前后调用的事件

BeforeDelete, AfterDelete 删除前后调用的事件

BeforeCancel, AfterCancel 取消前后调用的事件

BeforeOpen, AfterOpen 打开数据集前后调用的事件

BeforeClose, AfterClose 关闭数据集前后调用的事件

OnNewRecord 新记录产生时调用的事件

OnCalcField 当计算字段被计算时调用的事件

OnFilterRecord 启动过滤后,数据集内每条记录都调用此事件

事件使用举例:

1. 更改Delphi中DbNavigator控件默认的删除对话框

设置DbNavigator的ConfirmDelete属性为False,在Table控件的BeforeDelete事件中编写如下代码:

if ssageBox(\'确实要删除当前记录吗?\', \'删除 确认\', mb_YesNo + mb_IconWarning)                 Id_Yes then

Abort;

2.在记录保存前检验数据的完整性,以及连锁更新相关表中的数据,实现数据完整性检验可通过表数据集控件的BeforePost事件检验:

满资质状态下 if eldByName(\'OutCardMount\').AsInteger GetNowCardMount then

ssageBox(\'当前输入凭证的下发数量超过该种凭证的实际库存量!\', \'错误\', Mb_Ok                + Mb_IconError);

Abort;

else

UpdateProc;

杭州看白癜风去哪里
耳鼻喉科
骨关节炎吃什么药治疗效果好
推荐资讯