开发笔记2 2012-5-4 周五
系统报警信息发送程序开发。
其它程序收集了报警信息,如:硬盘满、硬盘坏、网络连不通、用户欠费、硬件设备无法访问等,这些程序已经实现了插入数据到几张不同类型的表,类似流水日志表,状态变化表。
我则在这个基础上,对这些表写个简单触发器,触发器尽量简单,然后调用同一个存储过程,负责决定把什么样的报警信息以什么样的方式发送给谁。
什么样的报警信息?上面提到的:硬盘满、硬盘坏、网络连不通、用户欠费、硬件设备无法访问等。
以什么样的方式?短信、邮件、客户端提示。
发送给谁?用户(给公务员缴费的非公务员们)、客户(某事业单位,公务员们)、代维公司的人员、我们自己的技术支持人员。
很多时候,需求分析就是一次次确认和细化:时间、地点、人物、事件。谁在什么时候在什么地点做什么事,不信你在业务流程分析中注意一下,是不是这么回事。
说说这个触发器和存储过程:
我用的是mysql5.0, 已经支持了触发器、存储过程、函数。以前在sqlserver2000写这些,那是用的相当熟,现在忘记光了。
在写存储过程时,发现一个现象,当列名和变量名相同时,查询赋值不成功,如下:
DECLARE mobile varchar(16);
DECLARE email varchar(32);
select mobile, email into mobile, email from organization where id = rowid;
把变量名修改一下,让他们不相同,则正确了,如:
DECLARE _mobile varchar(16);
DECLARE _email varchar(32);
select mobile, email into _mobile, _email from organization where id = rowid;
不知道为什么不能分辨,没时间去看那英文文档了,能实现正确功能则行。