摘要:应用系统的二次开发,一般通过ODBC等数据库驱动读取数据库数据,或者由开发厂商提供接口API函数。由于数据库驱动经过了很多中间环节,而且需要考虑到通用性、兼容性等各个方面,使性能、效率大打折扣;一般情况下,开发厂商不提供API函数,即使提供了函数,能读取的数据也有限。本文介绍了利用数据库的触发器和用户自定义函数机制,高效、灵活读取数据库数据的方法,对于用户自行组织的二次应用开发具有一定的参考价值。
关键词 :数据库 自定义函数 触发器
引言:经过多年的信息化建设,电力企业的信息系统开发应用已经越来越广泛,电力调度自动化系统、营销管理信息系统、办公自动化系统、生产管理系统、财务管理系统等一系列系统的应用,显著的提高了企业的生产、经营、管理水平和工作效率。
但是,这些系统一般是由规模较大的软件公司开发,当功能无法满足要求时,当需要增加特定功能时,开发单位往往不愿意破坏通用性而对系统进行大的修改。尤其是当开发需要综合利用多个系统的数据时,即使只是一个小小的功能,也得把各个系统的开发厂家召集起来,协商方案,联合开发,既千头万绪,又费钱费时。
这时,在原有系统基础上进行数据采集,不破坏原系统的二次开发,就成为最好的选择方案。
本文具体实现的环境是IBM DB2数据库 for Windows 版、Visuall C++ 6.0。此方法也适用于Oracle、SQL Server等其他数据库和开发工具。
实现过程。假设我们原有应用系统的数据库名为Data,我们要实时读取它的几张表的部分数据。我们需要做的工作包括:
1、 定义数据库触发器;
2、 编写数据库自定义函数并在数据库上创建此函数;
3、 编写数据接收和处理程序,本文称之为“数据处理中心”。
工作流程图如下:
一个触发器有三个基本部件:1、触发事件、2、触发器的限制、3、触发器动作。触发事件是对指定表或记录的INSERT、UPDATE或DELETE等操作;触发器的限制是指数据的定义范围,可以定义自己感兴趣的数据对象(行、字段、列、组合表达式等);触发器动作一般指触发器激发后,导致的操作。
利用触发器的工作原理,我们可以创建一个触发器来激发自定义函数,把需要的数据通过触发器定义的SQL语句查询出来,作为参数传递给自定义函数。
假设数据库Data有以下三张表,它们的数据库用户模式为user:
表一:Line_Base
关键词 :数据库 自定义函数 触发器
引言:经过多年的信息化建设,电力企业的信息系统开发应用已经越来越广泛,电力调度自动化系统、营销管理信息系统、办公自动化系统、生产管理系统、财务管理系统等一系列系统的应用,显著的提高了企业的生产、经营、管理水平和工作效率。
但是,这些系统一般是由规模较大的软件公司开发,当功能无法满足要求时,当需要增加特定功能时,开发单位往往不愿意破坏通用性而对系统进行大的修改。尤其是当开发需要综合利用多个系统的数据时,即使只是一个小小的功能,也得把各个系统的开发厂家召集起来,协商方案,联合开发,既千头万绪,又费钱费时。
这时,在原有系统基础上进行数据采集,不破坏原系统的二次开发,就成为最好的选择方案。
本文具体实现的环境是IBM DB2数据库 for Windows 版、Visuall C++ 6.0。此方法也适用于Oracle、SQL Server等其他数据库和开发工具。
实现过程。假设我们原有应用系统的数据库名为Data,我们要实时读取它的几张表的部分数据。我们需要做的工作包括:
1、 定义数据库触发器;
2、 编写数据库自定义函数并在数据库上创建此函数;
3、 编写数据接收和处理程序,本文称之为“数据处理中心”。
工作流程图如下:
数据读取的工作流程图
一个触发器有三个基本部件:1、触发事件、2、触发器的限制、3、触发器动作。触发事件是对指定表或记录的INSERT、UPDATE或DELETE等操作;触发器的限制是指数据的定义范围,可以定义自己感兴趣的数据对象(行、字段、列、组合表达式等);触发器动作一般指触发器激发后,导致的操作。
利用触发器的工作原理,我们可以创建一个触发器来激发自定义函数,把需要的数据通过触发器定义的SQL语句查询出来,作为参数传递给自定义函数。
假设数据库Data有以下三张表,它们的数据库用户模式为user:
表一:Line_Base
变电所名 | 线路名 | 线路长度 | 电压等级 | 备注 |
Station_name | Line_name | Line_Size | Voltage_Grade |