说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi”程序级触发器”功能的实现

HTML文档下载 WORD文档下载 PDF文档下载
Delphi”程序级触发器”功能的实现

在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 Application.MessageBox('确实要删除当前记录吗?'

'删除 确认'

mb_YesNo + mb_IconWarning)                <> Id_Yes then

Abort; file://利用哑异常阻止删除事件发生

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

file://GetNowCardMount为自定义函数(举例),假设其取得当前凭证的实际库存量

if Table1.FieldByName('OutCardMount').AsInteger > GetNowCardMount then

Application.MessageBox('当前输入凭证的下发数量超过该种凭证的实际库存量!'

'错误'

Mb_Ok                + Mb_IconError);

Abort; file://利用哑异常阻止数据保存,从而,使光标仍停留在当前行继续编辑

else file://如果需要连锁更新的话

UpdateProc; file://假设的一连锁更新相关表数据的过程

3.表数据集打开之前检验用户是否具有对当前表的访问权

在表数据集的BeforeOpen事件中编写如下代码:

if Not CanVisit(UserName

TableName) then file://CanVisit假设函数

检验用户对表是否有访问权

begin

Application.MessageBox('当前用户无足够权限访问当前数据!'

'信息'

Mb_Ok +                       Mb_IconInformation);

Abort; file://阻止当前表被打开

end;

4.关闭表数据集前提示保存数据,防止数据丢失

在表数据集的BeforeClose事件中编写如下代码:

if Table1.State in [dsEdit

dsInsert] then file://当前数据被修改或是新插入的记录

case Application.MessageBox('当前数据尚未保存

是否保存后再关闭?'

'保存 确认'

Mb_YesNoCancel + Mb_IconQuestion) of

Id_Yes : AdoTable1.Post; file://保存数据

Id_No : ; file://不保存

Id_Cancel: Abort; file://取消关闭事件

end;

其它事件编程略。

Delphi的数据集控件给程序开发人员提供了灵活的前端数据完整性检验的机制

【CTO俱乐部深圳站】企业大数据建设案例分享 Gmail新设计影响邮件营销 Fcaebook间接获利 百度高德小米网易杭研讲师登场 SDCC 2013第二批议题发布(图) [开源推荐]JS-Git:一款纯JavaScript实现的Git项目 良心企业Lavabit、Slient Mail相继关闭,美国云安全已死? 一周观察:LXC真的是PaaS的未来吗? [企业开源系列]Google背后的开源力量 合作: “云”潮中淘金的金钥匙 Windows 8.1尚未发布 Build 9471版遭泄露网爆高清大图 Imangi创始人:我眼中的App Store 职业设计生涯:打造世界上最小巧最强大手电 【SDCC 2013】Coding For Fun活动火热招募中! YARN之上的大数据框架REEF:微软出品,是否值得期待? 创建大数据公司之前你需知晓5件事 前途渺茫,考虑出售的黑莓还能找到买家吗? 帮助开发者轻松管理项目的8款在线工具 现代Web应用开发者必备的六大技能 JavaScript异步编程好助手:Promise模式 功能解析:Red语言推出0.3.3新版本 可穿戴?可吞咽!UI和UX的悄然转变 华为刘成:讲述开发者联盟的故事 出尔反尔,Amazon咬文嚼字玩转私有云 创业公司SOASTA:曾帮助伦敦奥运会官网进行云负载测试 金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 关于WinRunner中遇到的难题,请高手帮忙! 请大家帮忙推荐几款linux下比较好用的看jpeg图和看mpeg4比较好用的软件! 请问数据库应用程序如何制作安装程序? 笔记本突然出现很多马赛克,然后死了,大概是什么原因? 各位大虾请进 求:0,1,-1的N长度组合算法 各位问一个比较少见的问题100分相送,急急急!!! 这样的条件判断语句要怎么写?(很简单的) 一款很不错的电子图书制作、资料管理软件 在-卢-<<利用XML实现通用WEB报表打印>>时报:未将对象引用设置到对象实例 DBEdit如何限制输入格式? 简单问题 ★★★狂急!请问怎样取得文件的创建日期!在线等!在线结贴!★★★ 初学xml,很简单的问题,就是不会,各位近来看看!一行代码搞不定… 有没有用于unix下c开发的dbx调试图形界面的工具? 哪位有tar 和 gzip 命令参数的详细中文介绍 jsp网站测试,欢迎大家测试 提问 请问有没有直接可以HTML(XHTML、SHTML)生成XML-XSL!!的工具 进程外组件的关于注册的问题? jsp中怎样生成静态页面 请问:如何返回webservice类的一个或多个实例? 怎样触发另一个窗口中的javascript函数? 谁能提供一些检测内存泄露的工具或方法 如何将 FoxBase 中的数据导入到 SQL Server 中? 求助:API操作注册表出现奇怪问题 请问如何改变windows xp中的用户的登陆顺序 有问题:如何通过页面下载附件? 求助:VB生成安装文件的问题 下面的程序怎样优化?(着急) 怎么样在C++ Builder 的Form上显示文字!我不要用控件,要直接显示在Form上 200 分相送 高手请进 请教如何写成特殊格式文件的存取的问题. 适配器更新数据集怎么用事务 怎样才能设“开机密码”? 哪位高手可以给我介绍一下TOMCAT和APACHE,我刚接触,需要了解一下 关于SocketConnection. 进入linux8.0后,主板指示灯闪烁问题,请高手指教。 谁给一个QQ给我啊? 高分请教? 如何查看一个记录集中游标的位置。 求一个简单的窗口函数 请问如何实现计算器功能 如何修改这个脚本?(应该比较简单) 大伙能否谈谈.net整体软件框架的设计 来者有分:调查:大家是在用vc.net还是用vc60,我在用vc60 用SQL SERVER如何实现插入数据后立刻取出插入的数据的id?在线等待,急~~~~~~~ 关于JTree ppt 大家帮我看看这个方法错在哪里?分不是问题 请问获取中文操作系统下获取文件信息时lang-charset的取值为什么????? 为什么会有恐怖主义,他们针对的是什么? affirm和allege的区别用法和意义上 武则天和唐玄宗之间是什么关系 传递函数系统稳定性请问一个闭环系统的传递函数为Q(s)=s^2(s+1)/(s^3+s^2+K)为什么对于所有K不等于0都是不稳定的?怎么看出来的? 哪位ANSYS高手解决一下 constraint equation 1 has no unique degree of freedom 哪里出错误了?constraint equation 4 has no unique degree of freedomANSYS模态分析 最后计算出现这个问题 搜索网上出错的地方,有一个212什 在一个圆中有两条弦相交于一个定点且这两条弦互相垂直.求这两条弦乘积的最大值和最小值. 3Dmax 怎么把不同的对象围成一个圆圈大概有二三十个对象,想把他们围成一个圆圈怎么弄, 体育中极限强度的含义? 拨云见日的意思 3dmax里面我要一个物体围着圆形旋转,并复制,怎么操作的呢? 100ml的HNO3(浓度:0,01mol/L)和200ml的HCL混合,PH为1.75,求HCL的浓度. 2005年5月11日,台湾亲民党主席宋楚瑜应邀到清华大学演讲.此前北京连日下雨,这一天阳光灿烂.演讲一开始,宋楚瑜就以“拨云见日”来表达他此时的感慨.请问“拨云见日”的双重含义是?请帮 离子共存(不懂别进!)在酸性条件下,硝酸根离子和氯离子溴离子可以共存吗? 弯曲极限强度与切应力和正应力有什么关系?没听过弯曲极限强度啊? 拨云见日什么意思 为什么圆周运动的物体的加速度不断变化是因它不停的改变运动方向详细且准确 为什么楼上的卫生间冲水时,下水管道会有非常响的撞击声?我们家住9楼,为什么楼上的卫生间冲水时,卫生间顶上的下水管道会有非常响的撞击声?这声音类似"空咙,空咙"的撞击声,而且楼上冲水 拨云见日的含义 GIS工作怎么样? 空间中PQ两点处各固定一个点电荷 其中P点怎么看出来PQ是等量异号电荷的? 拨云见日的感觉是什么意思 学地理信息系统的女生适合找什么样的工作 PQ是某电场中的的一条电场线,将负电荷从P点由静止释放,只在电场力的作用下沿电场线运动到Q点,这过程中电荷的VT图像如图B所示,正确的是?D这电场是点电荷形成的电场,这句话为什么错 垂体和甲状腺为什么可以相互调节?甲状腺的负反馈不是作用于下丘脑吗? GPS和GIS怎么配合工作? 英语翻译歪脖老母的传说歪脖老母距今1500多年历史,来这里朝拜的人很多.他是观世因化身之一,被信徒们称为有求必应的灵验之神.他是全世界唯一尊“歪脖”佛像.当年,南海落潮,水面上出现 翻译two-linear-degree-of-freedom robot 3Dmax中物体怎么沿着路径进行复制啊? 自来水管呜呜叫怎么回事 成为拨乱反正和改革开放的思想先导的事件是什么 自来水管响怎么办 自来水管为什么会响?我家的自来水管经常响,而且声音非常大,有时象火车的轰隆声,有时象火车的汽笛声,吵得人睡不着觉.为什么会这样? 过圆内某点的弦中,垂直于直径的弦最短.是不是定理? 关于自来水管响的问题我们家厨房的自来水管这些天来经常会响,感觉是别人家一放水我们家的水管就会响并且开始流水(越来越大了).现在发现厕所的水管放水时厨房的也会流水还关不掉 什么叫极限跑酷运动? 反身代词的用法?youself herself himself itself myself themselves ourselves yourselves 的用法主要想知道他们分别在什么情况下用 关于GIS的金短时间的解释? testify和verify的区别,用中文举例说说?可以参考这题:The plane found the spot and hovered close enough to ___ that it was a car.A.verify B.testify 告诉我 英语反身代词 的用法 谢谢啦 国际社会如何定义恐怖主义 confirm,ascertain,substantiate 区别?confirm,ascertain,substantiate 都有“确认、证实”的意思,怎么区分? 第四题. 计算下列极限.题目如图.答案是二分之一.但过程我不懂. 模联议题:恐怖主义定义!如何入手啊?参加商会的一个议题,不知道该怎样切入,哪里是突破点.求神助!代表国家是德国. confirm和verify哪个可以搭配figuresQ:Did you (verify) (confirm) these figures?用confirm好,还是verify好?为什麽?请详细说明理由,不要只是复制粘贴,谢谢~!有独到见解的给与加分~!请高手解答~不胜感激…… ANSYS中 size cntrls是什么意思 如何判断恐怖主义分子,怎么定义的? 凸透镜的成像规律物距和像距的关系当 f 求懂的人忙我做两道CAD的题.要写作图步骤如题 看好是做题步骤啊,这个东西对我很重要 祝你们永远快乐!谢谢各位哥哥姐姐们了我只有5分了 不能多给你们了 请哥哥姐姐们多费心了 恐怖主义的概念,特征及国际社会的影响是什么? CF常说别BB N0 cassete with paper of the size requested is available是什么意思 3dsmax 中怎么获取三维物体沿轴线的各个切面? 为什么水壶烧开好壶嘴烧开后一定距离才能看见白气 求反身代词的各种用法~(高三英语) 在非取暖期时在铁制管道内充满水,原因是在非取暖期时在铁制管道内充满水,以减缓其锈蚀,原因是———— 基本放大电路动态分析中把直流电压源视为“接地”,为什么是视为“接地”?而不是视为其他.我是知道“叠加原理”的,我的意思是为什么不把它开路悬空分析,而是要接地 打印时出现英文对话框是什么意思?英文是No cassette with paper of the size requested is available当在电脑上点打印时,出现一个对话框对话框是英文No cassette with paper of the size requested is available 然后就打 恐怖主义到底在针对谁 直流电压源除源怎么处理,接地还是短路还是断路 唐玄宗拔乱反正是什么意思? 斯诺登密会德议员 称愿为NSA窃听事广西炮竹厂爆炸死亡人数升至11人 责俄总理:美国窃听外国领导人的行为“无广西炮竹厂爆炸死者家属:听到爆炸声意莫斯科市民发起“落叶保卫战”F-35首射空空导弹182米高印开建世界最高塑像92人渴死沙漠 尼日尔全国哀悼“监听丑闻让美陷道德危机”伊拉克10月恐怖袭击暴力冲突致死近千洛杉矶国际机场发生枪击事件 至少两人洛杉矶国际机场发生枪击事件 一嫌疑人希腊首都雅典发生枪击事件美国三大汽车制造商10月销量普增巴基斯坦塔利班证实其头目被美军无人机洛杉矶国际机场发生枪击事件 一嫌疑人洛杉矶国际机场发生枪击事件 嫌犯被执洛杉矶机场枪击案至少3人受伤 包括一洛杉矶国际机场发生枪击事件 至少两人洛杉矶国际机场发生枪击事件 一嫌疑人伦敦股市股指1日收盘基本持平油价低谷至日本央行承压,但中国经济增我们农村那些事儿 - 2015年农村从运动员到总评评委!刘翔:苏炳添9秒陈绍旺当选天津市西青区区长(图/简历全国信访局长会议在京召开中国社会福利基金会将募亿元资金 五年山东口岸2015年进口1.2亿升葡萄李毅吧的兴起:“帝吧亚文化”及其逆袭山东梁山农民工风雪讨薪 企业称“正在MTK芯片祸害千元机Wifi?乐1s客厅如此简洁大气,都想马上装修!北京猴年烟花爆竹开始配送 运输车安装石家庄造血干细胞捐献者暖冬行动关爱山阳台和客厅要不要隔断?90%的人都错1.27《异星寻爱记》全网上线!胖胖吃腐乳到底健康吗? & 停电信息|便“武穴微封面”第527期:武穴李丹 惊险:避让摩托,车飞水沟!寒假无聊了?快来参加英雄联盟竞技大赛台北年货大街开街迎客 冷雨难挡扑面年包贝尔晒女儿萌照 自称“全世界最好的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘