《ADO技术在变电站监控系统数据库的应用.pdf》由会员分享,可在线阅读,更多相关《ADO技术在变电站监控系统数据库的应用.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2 4 卷第1 期2 0 11 年3 月江西电力职业技术学院学报J o u r n a lo fJ i a n g x iV o c a t i o n a la n dT e c h n i c a lC o l l e g eo fE l e c t r i c i t yV 0 1 2 4N o 1M a r 2 0 l lA D O 技术在变电站监控系统数据库的应用王业萍1,李剑2,王美英1(1 江西电力职业技术学院,江西南昌3 3 0 0 3 2;2 江西电力设计院,江西南昌3 3 0 0 3 6)摘要:介绍了v i s u a lc+中有关数据库访问技术,分析了A D O 技术及
2、其优点,重点针对数据库管理软件设计提出一种利用A D O 数据绑定技术访问数据库的设计方案以及在3 0 k V 低压变电站微机监控系统中的应用并时系统中实现数据的动态查询和动作查询等作了深入的分析和探讨。关键词:A D O;数据库;数据绑定;动态查询;动作查询中图分类号:T M 7 6 9文献标识码:A文章编号:1 6 7 3 0 0 9 7(2 0 1 1)0 1 0 0 4 6 0 40引言利用变电站监控软件对变电站运行进行监视、控制和管理的过程中不仅需要维护大量的现场实时数据和控制命令而且这些应用任务的完成又具有严格的时限要求在有效时间内把下位机采集来的模拟量、开关量和电度量等数据按彼此
3、间的关联存取和处理,过时则失效。因此,对变电站监控系统的数据库设计提出了更高的要求。V i s u a lC+(为叙述方便,以下简称为V C)提供了多种方便易用的数据开发途径和功能强大的类库,增加了数据库开发的灵活性减轻了开发的复杂性,不仅能满足数据库管理技术要求。可实现系统的在线监视、命令操作、记录查询与打印等繁琐功能而且能提供快捷的数据库访问技术。因此在很多数据开发工作中,V C 发挥着重大作用。本文介绍的变电站监控系统数据库主要是依靠A D O 技术。与同类软件相比,它易用、高速、占内存少,而且拥有数据绑定技术,特别适合作为服务器端的数据库访问技术【1。2。1V C 中几种数据库访问技术
4、1 1V C 数据库访问数据库访问是数据库应用中的关键环节,目前V C 提供了以下几种数据库访问技术:O D B C(O p e nD a t a B a s eC o n n e c t i v e t y,开放数据库互连)是一个统一接口为客户应用程序访问关系数据库时提供的。它建立了一组规范,并提供了一组收稿日期:2 0 1 0 0 5 3 1作者简介:王业萍(1 9 7 9 一),女,河北保定人,讲师对数据库访问的标准A I P。相对其它的一些访问方式。O D B C 访问数据库的速度较慢,这限制了它在某些方面的应用,而且O D B C 只能用于关系数据库不适用于对象数据库及其它非关系数据
5、库。D A O(数据访问对象)提供了一种通过程序代码创建及操纵数据库的机制。D A O 访问采用M D B 文件格式的数据库效率较高,但对非M D B 文件格式的数据库服务器(例如O r a c l e 或S Q LS e r v e r)进行通信,则必须经过A c c e s s、J e t 数据库引擎,才能完成数据库的所有调用以及数据库输出的数据这严重制约了它的应用。O L ED B 是基于C O M 接口的访问数据库的技术。对包括关系数据库和非关系数据库系统O L ED B 提供了统一的A c t i v e X 接口。在使用O L ED B 接口时必须加入许多代码使用起来比较复杂而且O
6、 L ED B 标准的A P I 是C+A P I,只能提供C+语言调用。1 2A D O 技术特点微软公司的A D O(A c t i v e XD a t aO b j e c t s)是一个面向对象、与语言无关的应用编程接口E 3 j。它提供了编程语言和统一数据访问方式O L ED B 的一个中间层,使得各种流行的编程语言都可以用来编写符合O L ED B 标准的应用程。并且它使用了大量的C O M 接口对O L ED B 的接口进行了封装。它不仅继承了O L ED B 优点,同时对数据库访问功能进行了优化。其主要特点包括:(1)略对象层次,因为对象是相互独立的,因故万方数据镕1 自f
7、n#等:A D O 拄术$自*控系镕月m 月不需要在层次之间通过导航来创建对象。该模型缩减了对象个数和工作集。(2)支持w e b 服务器应用程序的自由线程对象。(3)支持批处理支持带有辅 输出参教和返回值的存储过程,以及支持多记录检索。(4)提供高级行集高速缓存管理其性能更好。基于A D O 技术的种种优势所以它具有十分广阔的应用前景。2 应用方案设计2 1 问是的提出查询是散据库的基本操作之一,分动态查询和动作查询。动态查询是指查询的参数可在程序运行时指定。A D O 有三方式实现动态查询”。第一种是使用筛选器。通过设置记录集的F i l t e r属性筛选i 己录集中满足搜索条件的记录。
8、在创建搜索条件时可以使用比较运符如“F i h e r=“n 雠ml i k eM+”。第二种是通过修改与记录集相关的W H E R E 语句执行简单查询。具体步骤如下:(I)通过调用c l o 鸵成员函数关闭记录集对象。如m _ p R s-C l o s e():(2)更改记录集的属性。如m s t r C m d T e x t=T(“S e l e c t+f r o mA i e o r d i g w h 唧I D O p e n()。第三种是搜索记录。利用F i n d 成员函数搜索记录集中满足指定条件的记录。当找到满足条件的记录后该记录将成为当前记录:如果投有满足搜索条件的记录
9、则肖前位置为记录集的柬尾。示例如mp R s 一 F i n d(“l i k e M 3,a d S e a r c h F o r-w a r d);满足条件的记录可能多于一条利用M o v e n e x t函数实现移动到后一条记录,M o v e P m v i o u s 函数实现移动到前一条记录。而M o v e F i H t 则移动到第一条记录M o v e L a s t 移动到最后一条记录。动作查询是指对数据实现的删除、舔加、修改,所以会引起数据库内容的变化。D e l e t e 菌散删除记录集巾的当前记录,或删除一组记录。D e l v e 函数只有一个参数,默认情况F
10、 为a d A f i e c t C n t 只删除当前记录而a d A f f e e t G m u p删除满足当前筛选器属性设置的一组记录。利用一R e m 哪类的A d d N 州函数,在可更新的记录集中添加记录。诙函数包吉两十参数,第一个参数包含数据库中列的名称第二个参散包含每个列的值。如m _ p R s 一 A d d N 州(,s f,礓);语句。u 山e 函数编辑可更新记录集中的当前记录参数同A d d N e w。”L p R P)u P d 心(蝉,&r g v);语句可实现修改功能。2 2 应用架构考虑假设系统访I 可的散据库是建立在s o LS 刚盯上的,首先在S
11、Q LS e r v e r 建立数据库D l 判k,向其添加表A i c o n f i g,结构如图1 所示。团匿墨翟墨墨墨蜀墨墨墨墨墨盔一q 嘧。e 口嘲蚤珥曩噼 二二巫二二 壅蚕 卫亘E 殛日I 曰1 d lc h I ol 自*1 6,l u noi+e,日淼赫。:篡:n“l:h l nno9 t8,!n。8口n 8,目1f U C O n f i g 镕#其中设置关键字段A l d i 为主键功能为按它的大小排判记录顺序不能为空。建立一个基于对话框的M F C 应用程序D h l o g l 向D i M o g l 对话框添J 静态文本控件和缩辑控件,为了和建立的表相对应井显示表
12、中的内容,对于编辑控件可添加控制变量时绑定。下面开始A D O 绑定把数据表引 到V C 中:(”初始化O L E d C O M 库环境即在C D i a l o g l A P P中的I n i t l 珊t a n c e 函数中调用A f x O l e l n i t 函数代码如下:i f(!A f x O L e l n i t()M x M e s s a g e B o x(_ T(”O L Ei n l d a l i 盟t i o n f a i l e d。t 岍F A L S E:(2)确保应用程序使用A D O 的更新版本需在头文件中加_ 凡下面代码:#i m p o
13、 r L”C:L P r o g r 哪F i l 曲C o m m o nF i l e s X a y s t e m L a d o m s a d o l 5d l l”E n p e(”A D O C G“)r a m e【E O F”E n d O I F i l e”)u s i n gn a m e s p a c eA D O C G;#i n c l u d e”i c i m h“万方数据江西电力职业技术学院学报第2 4 卷第一行的#i m p o r t 语句告诉编译器把此指令的动态库文件引人到程序中其中的r e n a m e _ n a m e s p a c e
14、用来对动态链接库的名称域进行隔离。最后r e n a m e 把A D O 中的E O F 重新命名,避免和其它地方定义的E O F 产生冲突。第二行#i n c l u d e 引入了A D O 数据绑定扩展。(3)在对话框类的头文件中创建C A l 酚O R e c o r d B i n d i n g 派生的类,通过使用预处理宏B E G I N A D O B I N D I N G 将自己定义的成员变量绑定到数据库表的字段。(4)修改对话框类的声明,从C D i a l o g 和C c u s t o m s 类派生,向其添加两个C s t r i n g 类型的保护成员变量m
15、_ s t r C o n n e c t i o n(用于存储连接字符串)和m s t r C m T e x t(用于存储要打开的表的名称或用于访问数据库表的S Q L 语句)。修改对话框类的构造函数,以设置连接字符串和命令文本变量代码如下:m s t r C o n n e c t i o n=J(”P r o v i d e r=S Q L O L E D B 1:I n t e g r a t e dS e c u r i t y=S S P I;P e r s i s tS e c u r i t yI n f o=F a l s e;I n i t i a lC a t a l
16、o g=D l g s j k;D a t aS o u r c e=W Y P”);m s t r C m d T e x t=_ T(”A i c o n f i g”);(5)向对话框类添加一R e c o r d d e s t P t r 类的保护变量p R s,并在对话框的构造函数和析构函数中将一R e c o r d s e t P t r 类型的对象设置为N U L L。(6)在O n I n i t D i a l o g 函数中将记录集绑定到对话框。声明I A D O R e c o r d B i n d i n g 类型的指针并将其设置为空,使用C r e a t e
17、I n s t a n c e 函数创建一R e c o r d s e t P t r 对象的实例,使用一R e c o r d e s t P t r 成员变量C u r s o r L o c a t i o n 设置指针位置使用O p e n 函数打开一R e c o r d s e t P t r。调用Q u e r y I n t e r f a c e 函数获取指向I A D O R e c o r d B i n d i n g 接口的指针。调用B i n d T o R e c o r d函数将记录集绑定到对话框。接着向D i a l o g l 对话框添加查询、添加、删除、
18、修改、确定、取消、前移、后移、移到最前、移到最后等按钮,利用前面介绍的知识编函数,在V C 中实现库的动作查询和动态查询。3 系统应用分析3 0 k V 低压变电站微机监控系统数据库管理主要是对整个系统的相关参数,如模拟量、电度参数和开关量等组态后与现场监控器上传的数据进行实时分析比较,看是否满足设定要求。如不满足则根据比较结果采取相应的措施。例如对前面的A i c o n f i g表就是模拟量输入组态由下位机传上来的模拟信号对其中o v e r r a n g e m a x 和o v e r r a n g e m i n(上限和下限)进行比较,如果超出范围则发出报警信号,并进行相关的操
19、作。变电站微机监控软件系统整体框架是一个M D I应用程序。是使用C f o r m V i e w 派生视图类的主画面文档,其中每个组态画面对应一个对话框。在运行主画面下点击组态按钮进入组态对话框下面是进入具体组态界面后的应用逻辑流程图(图2)。进入流程图2 逻辑流程具体的连接步骤如下:(1)向工程中插入组态需要的对话框:(2)按要求修改界面,添加需要的控件进行A D O 绑定:(3)在主画面里添加函数,进行主画面和组态画面的连接。在运行主画面的应用文件添加对话框的头文件如:#i n c l u d e“R s C g D l g h”。并使按钮按下时调万方数据第1 期王业萍等:A D O
20、技术在变电站监控系统数据库的应用用R s C g D l g 的D o M o d a l 0 函数,调出对话框的画面,进行具体的操作。A D O 数据绑定技术成功运用于此监测软件的组态部分。而对于软件其它部分,例如出现事故信号会在事故表中追加一条记录,并且修改系统参数表中的系统事故报警次数字段值。为了保证了数据库数据的完整性。还需要用到A D O 中的事务处理。具体操作是在开始第一个表的操作时调用C o e n e c t i o n 对象的B e g i n T r a n s 方法来开始一个事务而在第二个表的操作成功结束时。调用C o n n e c t i o n 对象的C o m m
21、 i t T F a n s 方法提交此事务。如中途出现异常,则在异常处理使用R o l l B a c k T r a n s 取消这次事务这样就保证两个表先后都更新或都不变。软件进入组态画面前必须登陆部分,根据实际情况可用M F CO D B C 方式访问数据库实现数据库的快速打开,并在人员档按表中查找是否有相应的记录。3 结束语V C 中数据库访问技术众多。A D O 技术作为后起之秀其优点的确很多,但其它的方法也有存在的必要。在数据库管理方面应充分利用其各自的特点及特性进行数据库编程,以达到用最少的编程量实现快速、完美的数据库管理;从而为变电站运行数据的管理逐步向自动化、综合化、集中化
22、方向发展提供有力的技术保障。参考文献 1 吴素芹,赵征鹏,李林A S P 动态网页制作教程M 北京:人民邮电出版社2 0 0 8 2 蒋铁海,刘朝晖A D O 控件访问数据库的各种技巧探讨 J 计算机信息,2 0 0 3,1 9(1):6 5 7 2 3 成功,杨福佃V C 中几种数据库访问技术的比较与选择 J 计算机应用研究,2 0 0 2(2):8 2 8 4 4 耿方萍,王春江基于A c t i v e X 的V C+数据库应用程序开发 J 微型电脑应用,1 9 9 9(8):8-1 0 5 美 M i c r o s o f tC o r p o r a t i o n V i d u
23、 a(北京博彦科技发展有限责任公司)1 C+6 0 M F C 应用程序开发 M 北京:清华大学出版社2 0 0 4 责任编辑韩翠丽T h eA p p l i c a t i o no fA D OT e c h n i q u ei nt h eT r a n s f o r m a b l e-s t a t i o nM i c r o c o m p u t e rM o n i t o r i n gS y s t e mD a t a b a s eW A N GY e _ p 咄1,L IJ i a n 2,W A N GM e i-y i n 9 1(1 J i a n g
24、x iV o c a t i o n a la n dT e c h n i c a lC o l l e g eo f E l e c t r i c i t y,J i a n g x iN a n c h a n g3 3 0 0 3 2,C h i n a;2 J i a n g x iE l e t r i cP o w e rD e s i g nI n s t i t u t eJ i a n g x iN a n c h a n g3 3 0 0 3 6,C h i n a)A b s t r a c t:T h i sp a p e ri n t r o d u c e ss
25、 e v e r a lk i n d so fd a t a b a s ea c c e s st e c h n i q u ei nV C,e m p h a s i so ne x p o u n d i n gt e c h n i q u ea n dp r e d o m i n a n c eo fA D O I ta l s og i v e sa ne x a m p l et h a ta c c e s sd a t a b a s eu s i n gA D Od a t ab i n dt e c h n i q u e,a n da p p l yt o3 0 k Vt r a n s f o r m a b l e-s t a t i o nm i c r o c o m p u t e rm o n i t o r i n gs y s t e m a n di ta n a l y s i sd y n a m i cq u e r ya n da c t i o nq u e r yi nt h ee x a m p l e K e yw o r d s:A D O;d a t a b a s e;d a t ab i n d;d y n a m i cq u e r y;a c t i o nq u e r y万方数据
限制150内