(通信与信息系统专业论文)市级供电公司电力报表系统的研究与实现.pdf_第1页
(通信与信息系统专业论文)市级供电公司电力报表系统的研究与实现.pdf_第2页
(通信与信息系统专业论文)市级供电公司电力报表系统的研究与实现.pdf_第3页
(通信与信息系统专业论文)市级供电公司电力报表系统的研究与实现.pdf_第4页
(通信与信息系统专业论文)市级供电公司电力报表系统的研究与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北电力大学硕士学位论文摘要 摘要 近年来,随着国家电力行业的迅猛发展以及信息技术在电力系统中的进一步应 用,电力信息化在提升行业管理水平和服务质量等方面的取得了令人瞩目的成绩。 电力生产数据、销售数据日益增多,这就需要借助报表管理系统来分析、提取重要 信息,为电力企业决策提供支持。针对保定市供电公司的实际情况,提出并设计了 基于c s 结构的电力报表系统。该系统应用v i s u a lc + + 编程语言,采用模块化的 设计理念,通过d a o 数据引擎操作a c c e s s 数据库,完成了报表管理、数据管理、 公式管理、e x c e l 输出模式等多种功能。此外,在网络通信方面,利用伪多线程法 操作数据库,解决了多客户端同时访闯服务器问题。 关键词:报表管理,多客户连接,多线程,s c a d a 数据采集,网络通信 a b s t r a c t r e c e n t l y ,w i t ht h er a p i dd e v e l o p m e n to fn a t i o n a le l e c t r i cp o w e ri n d u s t r ya sw e l la s t h ef u r t h e ra p p l i c a t i o no fi n f o r m a t i o nt e c h n o l o g yt ot h ep o w e rs y s t e m ,t h em a n a g e m e n t l e v e la n ds e r v i c eq u a l i t yo fp o w e ri n d u s t r yh a sg a i n e do b v i o u sa c h i e v e m e n t st h r o u g h i m p r o v i n gi n f o r m a t i o nm e t h o d t h ee l e c t r i c i t yp r o d u c t i o nd a t aa n ds a l e sd a t aa r e b e c o m i n gm o r ea n dm o r e ,w h i c hn e e dt ou s er e p o r tf o r mm a n a g e m e n ts y s t e mt oa n a l y z e a n dw i t h d r a wi m p o r t a n ti n f o r m a t i o n ,s oa st op r o v i d ep o w e r f u ls u p p o r tf o rc o r r e c t d e c i s i o n - m a k i n g ,a c c o r d i n gt or e a lc o n d i t i o n so fb a o d i n ge l e c t r i cp o w e rc o r p o r a t i o n , t h i st h e s i sh a sd e s i g n e dac s b a s e de l e c t r i cp o w e rr e p o r tf o r ms y s t e m t h i ss y s t e m a d o p t e dv i s u a lc + + l a n g u a g e ,m o d u l a t i o nd e s i g ni d e a ,a n dd a od a t ae n g i n et oo p e r a t e a c c e s sd a t a b a s ei no r d e rt or e a l i z ef u n c t i o n ss u c ha sr e p o r tf o r mm a n a g e m e n t ,d a t a m a n a g e m e n t , f o r m u l a m a n a g e m e n t , e x c e l o u t p u t p a u e r n a n dm u l t i c l i e n t s s i m u l t a n e o u s l yv i s i t i n gt h es e r v e ra n ds oo n m o r e o v e lt h en e t w o r kc o m m u n i c a t i o nu s e d f a l s em u l t i t h r e a dm e t h o dt oo p e r a t ed a t a b a s e ,w h i c hs o l v e dp r o b l e m so nm u l t i - c l i e n t v i s i t i n gs e v e ra tt h es a m et i m e k e yw o r d s :r e p o r tm a n a g e m e n t ,m u l t i - c l i e n tl i n i 【m u l t i - t h r e a d ,s c a d ad a t a c o l l e c t i o n ,n e t w o r kc o m m u n i c a t i o n w a n gq i n g z h o n g ( c o m m u n i c a t i o na n di n f o r m a t i o ns y s t e m ) d i r e c t e db yp r o f q iy u l i n 声明 本人郑重声明:此处所提交的硕士学位论文市级供电公司电力报表系统的研究与 实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作和取 得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:羔室盘日期:矿j 21 7 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校口j 以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:圣盘圣 e l 期:渔益:兰:寥i 导师签名: 日期: 趔 o f f 2 ,7 华北电力大学硕士学位论文 1 1 论文选题背景及意义 第一章引言 在电力系统运营中,时刻都会产生大量的实时数据,并且每隔一定的时间周期 就要求提交相应的报表,比如按时间周期可以将报表划分为日报表、月报表、年报 表等,按报表的统计对象可分为电力负荷报表、电力参数( 电压、功率因数等) 报表、 设备状态信息报表等。电力系统的管理人员通过阅读相关报表,就可以迅速、直观、 方便地了解系统的运行状态,并且以此对系统的运行状况和设备的性能做出正确评 价,从而指导电力生产。将报表和曲线结合起来,并应用于电力系统的数据分析、 规划比较,为管理决策提供重要的信息支持。因此,报表管理系统是电力系统信息 管理中不可缺少的重要组成部分。 经过近五年的电力行业信息化大发展,信息应用、资产、数量等急剧增长并形 成了一定规模,各种电力自动化系统在促进电力行业的健康有序发展中起到了举足 轻重的作用。电力系统自动化普及程度及使用水平也是衡量电力企业管理水平和技 术水平的主要指标,在很大程度上反映了企业的形象和面貌。 当前,信息技术的发展突飞猛进,特别是网络技术的兴起,使得报表所需的数 据传输得到了可靠的保证。硬件的不断进步为该系统提供了基础平台。因论文选题 来源于保定市供电公司,故该报表管理系统主要针对中型城市的供电系统,在做了 大量的需求分析之后设计、研究、实现,突出其实用性。 保定电网处于河北南网的中部,北连京、津、唐电网,南连晋中电网,是华北 地区南北电网的枢纽,供电电源较多。保定电网是一个发展迅速、位置重要的地区 级电网,它的安全稳定运行对整个河北南网的正常运行有着举足轻重的作用。因此 用一套报表管理系统来完成数据的汇总、统计、分析是非常必要的。 1 2 电力报表系统的特点 报表是人们归纳性观察世晃最常用的手段之一。面对大量的原始数据,通过报 表管理系统可以从中获取重要信息,为下一步工作规划及和决策提供可靠依据。结 合电力系统的实际情况,电力报表系统具有如下特点: 。时效性 这是电力报表系统的基本特征。电力行业是关系国计民生的基础性行业,其反 应速度直接关系到其它行业的正常运行。虽然报表管理系统较故障系统对实时性的 要求差,但是它是决策的重要依据之一,这要求系统有一定的时效性。 1 华北电力大学硕士学位论文 针对性 这是电力报表系统的功能特征。面对每日都会产生的海量数据,不可能针对每 项数据进行分析,只能有针对性地提取某些关键数据进行分析研究,作为下一步决 策的参考。电力报表系统的主要功能是通过对大量的原始数据进行符合某种条件的 筛选,根据不同的数据指标排列数据并获得相应的其它类型数据,以生成表格供其 它部门参考。 灵活性 电力报表不是一成不变的,虽然参数类别、表格格式等较为固定,但是随着厂 站和设备的增加、变化甚至是名称的改变都会影响到报表结果,这要求报表有一定 的灵活性,能够在一定范围内根据用户的要求自动生成新的报表模板或对旧报表的 模板进行修改等功能。 高效性 电力报表系统的主要目就是摆脱半手工产生报表。通过程序对原始数据进行处 理和提取关键数据,来提高办公效率。在设计报表输出时就侧重这一点,它采用了 工作人员可以直接申报的e x c e l 表格。在网络连接设计方面,多客户端同时访问服 务器也是出于高效性的考虑,如果客户端试图获得多个报表,时间将会较长,而采 用独占方式则会存在等待问题,有悖于效率原则。 1 3 电力系统报表发展现状与存在的问题 长期以来,在电力系统中一直采用半手工的方式报送报表,这已经越来越不适 应新形势下现代化信息管理的要求。一方面,数据统计范围越来越广、统计量越来 越大,统计格式越来越多,统计的及时性和准确性要求越来越高:另一方面,统计 的最终目的一一汇总和分析逐渐成为统计的最大瓶颈“1 。 报表管理系统结构主要有c s ( 客户端服务器) 和b s ( 浏览器服务器) 两种模 式。随着计算机网络( i n t e r n e t i n t r a n e t ) 技术的不断发展,使得基于b i s 结构的网络 报表管理系统成为可能。目前在市场上零星已有基于w e b 的报表管理系统软件或者 基于w e b 的统计解决方案。所谓的网络报表实际上是上级部门定义好的e x c e l 文件 发布在网站上( 或者通过e m a i l ) ,下级填报单位下载,在e x c e l 中打开该文件。填 写该e x c e l 报表后,然后通过网络传送至上级部门。上级部门手工汇总或者借助简 单的程序对每个e x c e l 文件进行汇总。这种方式显然不可取。“1 。 在报表结构选择方面,b s 结构与c s 结构都存在一定的问题,也有些信息系 统采用二者结合的方式。结合中型城市的实际情况,没有必要推翻c s 结构,因为 考虑到公司规模因素,并且不是供电公司所有的部门都需要使用报表管理系统,这 2 华北电力大学硕士学位论文 就使得c s 客户端分发、升级存在可行性。 1 4 本文的主要研究内容 本文以保定市供电公司为背景,设计一个基于c s 结构的电力报表系统。从功 能方面来讲,本文主要工作如下: 报表功能:包括新建报表模板、打开并刷新报表及相关部分。 多客户端同时访问功能:实现多个客户端在同一时间段内访问服务器并获得报 表。 数据管理功能:包括原始数据录入、查看、处理以及绘制日曲线等。 辅助数据库管理功能:包括月最值库、公式库、e x c e l 模板库等辅助型数据库的 创建、查看、修改以及维护。 1 5 论文的组织情况 本文共分五章,具体组织情况如下: 第一章引言:介绍论文的选题背景及意义。并对电力报表系统的特点及目前存 在的问题做了详细的分析,并结合保定市供电公司的实际情况对论文主要工作 和组织情况进行了说明。 第二章电力报表系统的开发环境:介绍c s 和b s 结构,并对二者作了对比分 析以及选择。在选定数据库的情况下,分析比较了几种数据库引擎,本章最后 对电力报表系统选用的开发工具及辅助工具作了详细说明。 第三章电力报表系统关键技术:对电力报表系统开发过程中涉及到的主要问题 进行分析说明,并提出相应解决方案。这些问题主要有数据操作、操作e x c e l 实现报表、对话框类之间函数调用以及利用多线程实现多客户端同时访问服务 器的功能。 第四章电力报表系统功能介绍:对电力报表系统进行了总体分析和设计,并详 细介绍了主要功能模块的设计思路与实现过程。 第五章总结与展望:对论文工作进行总结,并对系统存在的问题和下一步的工 作做了说明。 3 华北电力大学硕士学位论文 第二章电力报表系统开发环境 软件体系结构的设计是整个软件开发过程中的关键,不同类型、不同情况下的 系统需要不同的结构体系,系统的详细设计往往在很大程度上取决于体系结构的选 择。 2 1 c s 结构与b s 结构 软件体系结构主要经历了三个阶段:集中式结构、客户机服务器 ( c l i e n t s e r v e r ,简称为c s ) 结构、浏览器服务器( b r o w s e r s e r v e r ,简称为b s ) 结 构。集中式结构属于全封闭式系统,不同系统之问无法进行交流,信息共享能力差, 系统扩展不方便,已经无法适应信息技术发展的需求“1 ,下面仅对c s 和b s 作介 绍、比较、分析。 2 1 1 c s 结构 c s 结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。c s 软件一般采用两层结构:前端是客户机,即用户界面( c l i e n t ) 结合了表示与业务逻辑, 接受用户的请求,并向数据库服务提出请求,通常是一个p c 机;后端是服务器, 即数据管理( s e r v e r ) 将数据提交给客户端,客户端将数据进行计算并将结果呈现给 用户。还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同 时访问同一个数据库。在这种结构中,服务器的硬件必须具有足够的处理能力,这 样才能满足各客户的要求“1 。 c s 结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、 网络通信量低、响应速度快、利于处理大量数据。但是该结构的系统是针对性开发, 变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。 并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容 性差,不能实现快速部署、安装、配置,因此通用性差。 2 1 2b s 结构 b s 结构是随着i n t e r n e t 技术的兴起,对c s 结构的一种变化或者改进的结构, 它克服了c s 结构的部分缺陷。b s 结构中,事务处理的逻辑部分从客户机的任务 中分离出来,使客户机不再负责处理复杂的计算和数据访问等关键事务,只负责显 示部分,而由服务器来担负更多的工作。用户仅通过浏览器就可向服务器发出请求, 服务器处理用户的请求,并将结果传送至用户。 4 华北电力大学硕士学位论文 b s 结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有 成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化 特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例 如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困 难。此外,实现复杂的应用构造有较大的困难。虽然可以用a e t i v e x 、j a v a 等技术 开发较为复杂的应用,但是相对于发展已非常成熟c s 的一系列应用工具来说,这 些技术的实现复杂,并没有完全成熟的技术工具供使用。 2 1 3o s 结构与b s 结构的比较 结构不同 一般c s 软件采用两层结构,而b s 采用三层结构; 这两种结构的不同点是两层结构中客户端参与运算,而三层结构中客户端并不 参与运算,只是简单地接收用户的请求,显示最后的结果。由于三层结构中的客户 端并不需要参与计算,所以对客户端的计算机配置要求较低。虽然b s 采用了逻辑 上的三层结构,但在物理上的网络结构仍然是原来的以太网或环形网。这样,第一 层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络 线路,网络通信量大。而c s 只有两层结构,网络通信量只包括c l i e n t 与s e r v e r 之 间的通信量,网络通信量低。所以,c s 处理大量信息的能力是b s 无法比拟的。 这也是在一些情况下b s 无法替代c s 主要原因。 对安全的要求不同 由于c s 采用配对的点对点的结构模式,并采用适用于局域网、安全性比较好 的网络协议( 例如n t 的n e t b e u i 协议) ,安全性可得到较好的保证。c s 一般面向 相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更 安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用c s 结构。而b s 采用点对多点、多点对多点这种开放的结构模式,并采用u d p i p 这 一类运用于i n t e r n e t 的开放性协议,其安全性只能依靠数据服务器上管理密码的数 据库来保证。所以b s 对安全以及访问速度比c s 有更高的要求。而i n t e r n e t 技术 中这些关键的安全问题远未解决。 速度不同 由于c s 在逻辑结构上比b s 少一层,对于相同的任务,c s 完成的速度总比 b s 快,使得c s 更利于处理大量数据。 交互性与信息流不同 交互性强是c s 固有的一个优点。在c s 中,客户端有一套完整的应用程序, 5 华北电力大学硕士学位论文 在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。b s 虽然由j a v as c r i p t 、v b s c r i p t 提供了一定的交互能力,但与c s 的一整套客户应用 相比是太有限了。c s 的信息流单一,而b s 可处理如b b 、b c 、b o 等信息并具 有流向的变化。 系统维护不同 系统维护是在软件生存周期中开销最大的一部分。c s 程序由于其本身的整体 性,必须整体考察并处理出现的问题。而b s 结构,客户端不必安装及维护。b s 结构在构件组成方面只变更个别构件,开发、维护等工作都集中在服务器端。当需 要升级时,只需更新服务器端的软件,而不必更换客户端软件,实现系统的无缝升 级。这样就减轻了系统维护与升级的成本和工作量,使用户的总体拥有成本( t c o ) 大大降低。 构件重用不同 在构件的重用性方面,c s 程序从整体进行考虑,具有较低的重用性。而b s 对应的是多重结构,要求构件具有相对独立的功能,重用性较好。这促使b s 结构 发展相对迅速。 c s 技术是2 0 年前的主流开发技术,它主要局限于内部局域网的需要,因而缺 乏作为应用平台的一些特性,难以扩展到互联网这样的环境上去,而且要求开发者 自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。 这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用 程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂,成了c s 的一 大缺陷。 但是,与b s 结构相比,c s 技术发展历史更为“悠久”。存在一定优势。从技 术成熟度及软件设计、开发人员的掌握水平来看,c s 技术更成熟、更可靠。在某 些情况下,采用b s 方式将造成系统响应速度慢、服务器开销大、通信带宽要求高、 安全性差、总投资增加等问题。而且,对于一些复杂的应用,b s 方式目前尚没有 合适方式进行开发。 在研发过程中选择那种结构方式,除了客观地分析c s 、b s 的优劣,更主要 的是要结合实际情况考虑。虽然目前主流是b s 结构,但是结合实际问题,该报表 管理系统主要应用在地理范围较小、数据安全性要求较高、数据处理量较大的情况 下,故该电力报表系统采用c s 结构体系进行研发。 2 2 数据库选择 报表管理系统主要作用是对数据的操作,数据库的选择成为关键问题,选用何 6 华北电力大学硕士学位论文 种数据库直接影响到设计开发等方面的细节问题。目前数据库种类繁多,大型数据 库o r a c l e 、d b 2 等;中大型数据库s y b a s e 、i n f o r m i x 、s q l s e r v e r 等;小型数据库a c c e s s 、 s y b a s es q la n y w h e r e 、d b f , e x c e l 等。在进行了大量需求分析工作及针对各方面实 际情况考虑的基础上,该报表管理系统选择的数据库是m i c r o s o f t a c c e s s 。 a c c e s s 是一个关系型数据库开发工具,属于m i c r o s o f to f f i c e 办公软件。a c c e s s 主要应用于数据库的存储、开发、查询和检索,软件本身附有多个通用的小型数据 库,可以直接使用。相对于其他数据库( 如s q ls e r v e r 、o r a c l e 等) 而言,a c c e s s 数 据库具有易学、易用等优点。其功能虽然略为逊色,但特别适合信息量较小的小型 数据库,同时也具备大型数据库的基本功能,例如利用w 曲检索和发布数据,实现 与i n t e r n e t 的连接和共享等”1 。结合本系统,数据规模相对比较小。因此,采用a c c e s s 数据库开发。 此外,结合该报表管理系统的具体背景情况分析。首先,根据目前需求情况来 看,a c c e s s 数据库可以满足使用要求,具体实现方式将在第三章作详细介绍。其次, a c c e s s 数据库对运行平台要求低,资源耗费小。再次,因客户需求,报表最终结果 要以e x c e l 表格形式输出,a c c e s s 与e x c e l 都是微软公司的产品,接口技术成熟。 最后,此种数据库操作方便,结构简单,易于工作人员维护。 2 3 数据库引擎 数据库引擎的选择也是重要问题之一,目前数据库访问技术有o d b c 、d a o 、 o l e d b 、a d o 等。 2 3 1o d b o 简介 o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y ,开放式数据库互连) 是微软公司开放式服 务结构( w o s a ,w i n d o w so p e ns e r v i c e s a r c h i t e c t u r e ) 中有关数据库的一个组件部 分,它建立了一组规范,并提供一组对数据库访问的标准a p i ( 应用程序编程接口) 。 这些a p i 利用s q l 来完成其大部分任务。 o d b c 是一个应用广泛的数据库访问应用编程接口,使用标准的s q l ( 结构化 查询语言) 作为其数据库访问语言。一个基于o d b c 的应用程序对数据库的操作不 依赖任何d b m s ( 数据库管理系统) ,不直接与d b m s 打交道,所有的数据库操作 由对应的d b m s 的o d b c 驱动程序完成。也就是说,不论是f o r p r o 、a c c e s s 还是 o r a c l e 数据库,均可用o d b ca p i 进行访阆。由此可见,o d b c 的最大优点就是能 以统一的方式处理所有数据库。 7 华北电力大学硕士学位论文 2 3 2d a 0 简介 d a o ( d a t a b a s e a c c e s so b j e c t 数据库访问对象) 使用m i c r o s o f tj e t 数据库引擎 来访问数据库。d a o 提供了一种通过程序代码创建和操纵数据库的机制。多个d a o 对象构成一个体系结构,在这个结构里,各个d a o 对象协同工作。d a o 支持以下 四种数据库选项: 打开访问数据库( m d b 文件) :m d b 文件是一个自包含的数据库,它包括 查询定义、安全信息、索引、关系,当然还有实际的数据表。用户只需要指定m d b 文件的路径名。 直接打开o d b c 数据源:这里有一个重要的限制,不能打开以j e t 引擎作为 驱动程序的o d b c 数据源;只可以便用具有自己的o d b c 驱动程序d l l 的数据源。 用j e t 引擎打开i s a m 型( 索引顺序访问方法) 数据源,即使已经设置了 o d b c 数据源,要用j e t 引擎来访问这些文件类型中的一种,也必须以i a s m 型数 据源来打开文件,而不是以o d b c 数据源的方式。 给a c c e s s 数据库附加外部表:实际上是用d a o 访问o d b c 数据源的首选 方法。可以用a c c e s s 把o d b c 表添加到一个m d b 文件上,用户也可以用a c c e s s 把i a s m 文件附加到一个m d b 文件上。 m i c r o s o f tj e t 为像a c c e s s 、f o x p r o 等数据库提供了数据引擎,d a o 可以直接访 问而不必在o d b c 管理器中注册d n s 。d a o 提供了组a p i 供编程使用。m f c 也 提供了一组d a o 类,封装了底层的a p i ,从而大大简化了程序的开发。 2 3 30 t ed 8 简介 o l e d b 是m i c r o s o f t 的一个战略性系统及编程接口,用于管理整个组织的数据。 o l ed b 是建立在o d b c 功能之上的一个开放规范。o d b c 是为了访问关系型数据 库而专门开发的,o l ed b 则用于访问关系型和非关系型信息源,例如主机 i s a m v s a m 和层次数据库,电子邮件和文件存储系统,文本、图形和地理数据以 及自定义业务。o l ed b 的存在为用户提供了一种统一的方法来访问所有不同种类 的数据源。o l ed b 可以在不同的数据源中进行转换。利用o l ed b ,客户端的开 发人员在进行数据访问时只需把精力集中在很少的一些细节上,而不必考虑大量不 同数据库的访问协议。 o l ed b 定义了一组c o m 接口,对各种数据库管理系统服务进行封装,并允 许创建软件组件,实现这些服务。o l ed b 组件包括数据提供程序( 包含和表现数 据) 、数据使用者( 使用数据) 和服务组件( 处理和传送数据,例如查询处理器和 游标引擎) 。o l e d b 接口相当通用,提供了一种访问数据的统一手段,而不管存储 8 华北电力大学硕士学位论文 数据所使用的方法如何。同时,o l ed b 还允许开发人员继续利用基础数据库技术 的优点,而不必为了利用这些优点而把数据移出来。 2 3 4a d o 简介 a d o ( a c t i v ed a t a0 b j e c t ) 是微软公司基于o l ed b 的数据库模型。它实现了 一系列c o m 接口,通过数据提供者( d a t ap r o v i d e r ) 和数据使用者( d a t ac o n s u m e r ) 来实现广义的数据存取。a d o 模型一方面简化了数据存取,例如使用j e to l e d b p r o v i d e r 可以实现a c c e s s 数据库的无d s n 连接;另一方面,在a s p 等i n t e r n e t 应 用中也得到了广泛的使用。 a d o 与所有c o m 服务器一样,可以完成如下工作;存放在d l l 中,以便在 客户进程的地址空间中运行,从而提高性能;提供一个自治接口,可以提供给几乎 任何编程语言编写的客户使用;提供一个类型库,以便其对象和函数能够容易地被 客户端应用程序发现。 2 3 5 数据库引擎选择 几种数据库引擎各有优点,结合所选用的数据库,则主要是比较o d b c 和d a o 两种的优劣。两者有很多相似之处,主要有以下几点: 二者都支持对各种o d b c 数据源的访问。虽然二者使用的数据引擎不同, 但是都可以满足用户编写独立于d b m s 的应用程序的要求。 d a 0 提供了与o d b c 功能相似的m f c 类。例如,d a o 的c d a o d a t a b a s e 类对应o d b c 的c d a t a b a s e 类,c d a o r e c o r d s e t 对应c r e c o r d s e t ,c d a o r e c o r d v i e w 对应c r e c o r d v i e w ,c d a o e x c e p t i o n 对应c d b e x c e p t i o n 。这些对应的类功能相似, 它们的大部分成员函数都是相同的。 a p p w i z a r d 和c l a s s w i z a r d 对使用d a o 和o d b c 对象的应用程序提供了类 似的支持。 d a 0 优于o d b c 主要表现在有些情况下可以获得更好的性能,特别是在访问 m i c r o s o f tj e t ( m d b ) 数据库时,这也是选择d a o 最重要原因,此外,d a o 允许 数据有效检查;允许用户说明表与表之间的关系等优于o d b c 的支持功能”1 。鉴于 以上原因,选择d a o 作为数据库引擎。 2 4 电力报表系统的开发环境 一个稳定和便捷的工作平台可以大大地提高工作效率,根据电力报表系统的需 求分析和框架设计,选用以下工具构建开发环境: 9 华北电力大学硕士学位论文 操作系统:w i n d o w sx pp r o f e s s i o n a l 开发工具:v i s u a lc + + 6 0 关系型数据库:m i c r o s o f t a c c e s s 数据库引擎:d a o 输出组件:m i c r o s o f te x c e l 传输协议:t c p i p 2 4 1 开发工具 开发软件选用v i s u a lc 十+ ,它是一个编程工具软件,即“可视化的c + + 编程工 具”,它集成了c + + 编译器和编辑环境。c + + 是一种编程语言,用c + + 语言编写的程 序可以用c 抖编译器来编译成可运行的执行程序。c + + 编译器有很多,m f c ( m i c r o s o f tf o u n d a t i o nc l a s s e s ) 是一个微软提供的基础类库,它封装了w i n d o w s 里的a p i ,对于开发者来说,用m f c 会比直接用w i n d o w s 的a p i 来得容易一些( 所 有w i n d o w s 应用程序都得通过使用w i n d o w s a p i 来实现) 。m f c 中还提供了很好的 应用程序框架,最突出的就是“文档一视图”结构。c + + 语言与操作系统环境是没有 关系的,只是由于w i n d o w s 操作系统太过普及,所以一般都在开发基于w i n d o w s 操作系统的应用程序。 目前用于开发w i n d o w s 应用程序的编程语言、编程环境很多,而用c + + 开发程 序的编程环境中,v c 是比较好用的工具软件,尤其是开发w i n d o w s 应用程序,再 加上v c 对m f c 应用开发支持的最好,其主要原因都是微软的产品,所以现在相当 多数的产品是在v c 上用m f c 开发w i n d o w s 的应用程序。 结合该报表管理系统的具体情况,v c 可以方便的通过d a o 引擎操作a c c e s s 数据库实现创建数据库、创建数据表、对数据表进行查询、获取数据等等,在操作 e x c e l 也做了比较方便的接口。此外,v c 在多线程实现方面有得天独厚的优势,技 术成熟、实现简单。 2 4 2 辅助工具 报表输出方式:e x c e l m i c r o s o f to f f i c ee x c e l 是微软公司出品的o f f i c e 系列办公软件中的一个组件, 确切地说,它是一个电子表格软件,可以用来制作电子表格、完成许多复杂的数据 运算,进行数据的分析和预测并且具有强大的制作图表的功能。 e x c e l 以其简单易学、功能完善逐步成为大多数公司主要办公软件之一,该报 表管理系统情况及在需求分析时用户要求,放弃相对比较容易实现的v c 自带报表 输出,而采用e x c e l 作为报表最终输出方式。 网络通信协议:t c p i p 1 0 华北电力大学硕士学位论文 t c p 协议是一种可靠的面向连接的协议,它允许将一台主机的字节流( b y t e s t r e a m ) 无差错地传送到目的主机。基于t c p i p 的通信基本上都是利用s o c k e t s 套接字进行数据通信,s o c k e t s 套接字是通信的基石。是支持t c p i p 协议的网络通 信的基本操作单元。套接字分为两类:流套接字和数据报套接字,其主要区别为流 套接字是面向连接而数据报套接字是无连接的。该系统采用的是有连接即为选择 t c p 协议的原因。图4 1 所示。列出了流套接字编程的时序图。 阻 服务器 2 5 本章小结 图4 1 流套接字编程时序图 该章节首先对c s 与b s 进行对比,论证了电力报表系统采用c s 结构的优势。 在确定系统体系结构的基础上,简单分析了选用a c c e s s 数据库的原因。介绍了几种 数据库引擎o d b c 、d a o 、o l ed b 、a d o ,在选定a c c e s s 数据库的前提下比 较优劣,最终选择d a o 。 一个稳定便捷的工作平台,可以大大提高项目开发效率,缩短项目开发周期, 1 l 华北电力大学硕士学位论文 本章最后对电力报表系统开发工具和辅助工具进行说明。 华北电力大学硕士学位论文 第三章电力报表系统的关键技术 在系统开发过程中,有一些技术是决定系统实际应用效果好坏与开发成败的关 键,本章就对电力报表系统开发过程中的关键技术加以提炼和阐述。涉及代码仅列 出主要语句,并注释说明。 3 1 关于数据操作问题分析及解决方案 电力报表系统的主要工作是对数据的各种操作,从大量的原始数据中提取关键 信息。衡量报表系统优劣的一个关键性指标是其对数据的处理能力。 下面分别从以下几个方面探讨该报表管理系统涉及到的数据库问题及解决方 案。第一,如何与数据库连接,即如何通过d a o 引擎操作a c c e s s 。第二,数据库 的结构设计,采用何种方式能利用数据库方便地存储、管理、查询数据。这虽然是 设计问题,但具体设计方案关系到整个报表管理系统的结构、体系及一切功能的规 划与具体实现,对整个报表管理系统都起着决定性作用,故这里把它作为一个技术 问题来阐述。第三,检索方式,此报表管理系统有8 0 以上的报表是在某个观测值 出现极值的情况下获取其余各个相关的数据项从而得出报表。故检索最值成为报表 中的常见问题,以何种方式和技术查询最值成为关键问题。最后简单介绍辅助性工 具的设计及维护。 3 1 1d a 0 操作a c c e s s 数据库问题分祈及解决方案 数据操作离不开对数据库的操作,首先是通过数据库引擎连接数据库,o d b c 引擎通过环境配置可以使用。一般来讲,d a o 类对数据库提供了比o d b c 类更广 泛的支持。一方面,只要有o d b c 驱动程序,使用m i c r o s o f tj e t 的d a o 就可以访 问o d b c 数据源。另一方面,由于d a o 是基于m i c r o s o f tj e t 引擎的,因而在访问 a c c e s s 数据库( 即m d b 文件) 时具有很好的性能。优势如此明显,可是在操作 a c c e s s2 0 0 0 时似乎无从下手,源数据表无法识别;放弃模板平台随之而来的是大量、 繁琐的工作。而随着对办公自动化功能需求的不断提升,又不可能停留在a c c e s s9 7 的基础上。 产生这问题的原因是d a o 采用的j e t 数据库引擎,m f c 现在支持d a o3 5 。 m f cd a o 类可以与d a o3 0 或d a o3 5 一起工作,但是设计上未能利用任何新 的d a o3 5 功能,包括o d b cd i r e c t 。访问a c c e s s9 7 的引擎是3 5 版本,而访问 a c c e s s2 0 0 0 及以上的是至少应是3 6 版本。所以,要用d a 0 访问a c c e s s2 0 0 0 必须 升级引擎到3 6 。 1 3 华北电力大学硕士学位论文 该问题具体解决方案:首先,创建a c c e s s2 0 0 0 或者a c c e s s2 0 0 3 数据库,利用 转换数据库工具将其转化为a c c e s s9 7 类型,命名为9 7 m d b 。随后,在创建m f c 模板时以9 7 m d b 作为引导数据库。最后,待工程创建完成,在i n i t l n s t a n c e o 中加入 a f x g e t m o d u l e s t a t e 0 md w v e r s i o n = 0 x 0 6 0 1 语句,这将加载d a o3 6 代替d a o 3 5 ,从而解决调用问题。 3 1 2 数据的存储方式设计 电力报表系统原始数据有一个很重要的特点实时性。针对某个确定的观察 项,每天会产生2 8 8 个观测数据,即使是中型城市,每个变电站或者观测站平均有 近百个观测数据项。这种特性导致数据量相对较大,如何存储原始数据成为重要闯 题。 采用何种解决方式取决于报表管理系统的特性和数据库的特性。首先,该系统 对于原始数据存储要有清晰的条理。这样才能方便的实现检索、查询等操作,而且 可以为用户管理数据库提供标准,因为数据不可能无期限地存放在系统数据库下, 对于早期数据需要人为处理。其次,报表管理系统对于检索时间要求并不是非常严 格,虽然可以通过该系统观测原始数据,但这并不是主要功能,只是用户可以通过 观察原始数据而对于某些因网络传输产生的错误数据有所把握。对于各种报表时间 上并不是属于实时的,结合接收线程的原因,客户端只能查看前一天的报表。此种 处理方式也有其现实依据,如系统极值断面、各站极值断面都是在对间上最小以日 为单位,电压月报则是最小以月为单位。一天没有结束,那么数据的极值本身在范 围上就是不完全的。再次,结合a c c e s s 数据库和d a o 引擎的特性,新建数据库比 较方便,各种耗费也相对较小。 解决该闯题的方案是采用每日建立日期库的方式,利用独立线程记录时间、接 收数据。每日0 :0 0 - - 0 :0 5 建立当日数据库,以日期命名数据库。然后根据站名 创建数据表,在当日中每隔五分钟接收一次数据,存放到此数据库中。当然这是在 正常运行的情况下,对于各种异常情况的处理将在第四章有详细介绍。 建立数据库程序部分源代码 v o i dc m a i n f r a m e :j k h s 0 建立数据库 g e t m o d u l e f i l e n a m e ( :g e t m o d u l e h a n d l e ( n u l l ) ,p a t h ,m a x p a t h ) ; c s t r i n gi n i f i l e p a t h = p a t h ; ,获得路径 1 4 华北电力大学硕士学位论文 s t r d a t e f o r m a t ( ”d - d d ”,c t i m e :g e t c u r r e n t t i m e o g e t y e a r 0 ,c t i m e :g e t c u r r e n t t i m e o g e t m o n t h o ,c t i m e :g e t c u r r e n t t i m e o g e t d a y 0 ) ; ,获取时间 m m y d a t a b a s e c r e a t e ( 1 u j i n g ) ; 创建日期数据库 i n tb y t e s r e a d = f i l e r e a d ( s ,9 9 9 9 9 9 ) ; s b y t e s r e a d = o : c s t r i n gm e s s a g e = s ; ,读入数据a n a l o g n a m e t x t m _ m y t a b l e c r e a t e ( z h a n m i n g ,0 ,n u l l ,n u l l ) ; 根据站名创建数据表 m m y t a b l e c r e a t e f i e l d ( s t r s q l ,d b d a t e ,n u l l ,o ) ; ,创建数据项 m _ m y t a b l e c r e a t e f i e l d ( s t r _ s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论