果有森,刘 冲
(中国电子技术标准化研究院,北京 100176)
仪器设备是实验室从事相关科研开发、产品检测的必备条件,也是实验室得以迅速发展的物质基础。近年来,伴随着研究院的迅速发展,仪器设备迅速增多。目前实验室拥有具备国际先进水平的各类仪器设备3 600余台套,种类繁多,其中既包括常规的无线电设备,也包括高端电磁兼容设备;既包括常规的长热力设备,也包括高端的计量标准设备。仪器设备种类繁多,信息量庞大,传统的纸质设备管理方案耗时耗力,信息管理不能做到及时、科学,已经不能够满足本单位发展的需要,科学有效的设备管理系统的开发迫在眉睫。合理的设备管理系统的引入,能够提高仪器设备的信息管理工作效率,减少该方面的工作量。
本设计所选用的开发平台为Visual C++6.0,是由Microsoft公司推出的目前应用极为广泛的可视化开发工具,利用Visual C++6.0可以开发基于Windows平台的32位应用程序,依靠强大的编译器以及网络与数据库的开发能力,用Visual C++6.0可以开发与数据库结合紧密的软件系统。通过该软件平台开发的设备管理系统,能够提高设备管理效率,为实现设备管理的自动化,提供了便利条件。
设备管理系统的总体任务,是实现实验室设备信息管理的系统化、规范化和自动化。从功能模块角度来说,该设备管理系统主要由以下5个部分组成:设备管理登陆部分,系统操作部分,设备浏览部分,自定义查找部分和失效查询部分。
设备管理登陆部分,主要用于设备管理系统的登录;系统操作部分,主要完成设备管理系统登录用户操作;设备浏览部分,完成所有设备的浏览;自定义查找部分,可以按照不同设备的共有属性,完成各个项目的自定义查找;失效查询部分,提供设备的过期报警。
数据库的选择,是设备管理系统开发中非常重要的环节。数据栏目和数据结构的设计,是数据库的重要流程。数据栏目、数据结构合理,对于软件的开发有推进作用。从本单位实际情况出发,在对仪器设备的信息进行详细分析的基础上,可以将仪器设备的属性,按照其特点,可以分为4类:身份信息,使用维护信息,管理信息,功能信息。
其中,身份信息包括:仪器序号,仪器名称,型号规格,生产厂家,出厂编号(SN),出厂日期,购买日期,价格,固定资产编号,所属专业实验室等;使用维护信息包括:设备状态,使用频次,检定(校准)日期,检定(校准)单位,检定(校准)结果等;管理信息包括:仪器类别,所属部门,保管人,联系电话等;功能信息包括:主要参数以及范围等。
数据库技术是计算机领域中的一门很重要的技术。由于数据库信息容量大,分类、统计和检索方便,使用灵活且便于维护,因而得到了广泛的应用。近年来,数据库技术发展迅速,使用较多的数据库管理系统,包括 Microsoft SQL Server、Oracle、Sybase、dBASE、Microsoft FoxPro以及Microsoft Access等。在这些数据库管理系统中,有的适用于大型数据库应用系统,有的适用于中小型数据库应用系统,根据数据库适用的规模以及功能特点等因素,我们选择了Microsoft Access数据库应用系统。
Visual C++拥有强大的数据库开发程序和集成的开发环境,具备多种数据库访问接口。ODBC(开放数据库互联)、DAO(数据访问接口)、OLE DB(对象连接与嵌入数据库)和ADO(基于组件的数据库编程接口),都为用户通过Visual C++应用程序访问数据库提供了便利条件。ODBC属于应用程序编程接口,通过它可以编写不依赖于DBMS(数据库管理信息系统)的数据库应用平台。ODBC提供各种DBMS相对应的ODBC驱动程序。Visual C++开发的应用程序,通过这些驱动程序,实现对不同数据库的操作。Visual C++6.0使用ODBC的层次结构如图1。
图1 ODBC层次结构图
MFC的ODBC类主要包括以下几方面:
(1)CDatabase类。表示应用程序连接到数据源,通过它可以对数据源进行操作,数据源是某个数据库管理系统(DBMS)的数据实例。
(2)CRecordset类。表示一个记录集,该类是ODBC中重要且功能最强大的类。记录集可以分为快照(Snapshot)和动态集(Dynaset)两种。应用程序可以选择数据源中某表作为一个记录集,通过对该类的操作,可以实现记录的修改、增加、刷新和删除等操作。
(3)CRecordView类。CRecord View类是CView类的一个子类,内置对CRecordSet的支持,支持记录的浏览、更新等操作。。该类可以通过表单视图与记录集直接相连,利用对话框数据交换机制(DDX)实现记录集与表单视图的控件的数据传输。
总之,CDatabase类负责数据库负责连接到数据源,CRecordset实现数据源中记录的操作,CRecord-View类实现界面的开发,通过CFieldExchange实现CRecordset与数据源的数据传输。
数据库应用程序的操作对象是数据源,因此必须首先建立数据源,通过创建Access数据库,在Windows开始菜单中选择开始-设置-控制面板,当控制面板出现后,用鼠标双击ODBC Data Source(32bit)图标,如图2所示的数据源管理器。通过选择添加,选择数据源等操作,完成数据库的注册。
图2 数据源管理器
实验室设备管理系统访问用户名以及密码储存在Microsoft Access数据库文件中,由于ODBC定义了一组规范,提供了一组对数据库访问的一组标准API,这些API是建立在标准化版本SQL(Strutted Query Language,结构化查询语言)基础上的。ODBC位于应用程序与DBMS之间,便于对数据库的访问。通过ODBC API编写代码,实现数据库的连接与控制。其主要操作流程为:通过程序实现数据库中查找,如果用户输入的姓名和密码与数据库中存储的信息匹配,则可以进入设备管理系统主界面;系统用户操作部分,主要实现设备管理系统的用户操作,可以进行用户的删除,用户增加,用户信息更改等。
设备浏览部分界面如图3所示,该部分主要实现实验室全部设备一览表,实验室设备信息(仪器序号、仪器名称、型号规格等等)储存在Microsoft Access数据库文件中,与系统用户操作部分编制原理类似,通过ODBC API实现设备信息的查询、增加、删除,还可以实现选定设备的信息修改并更新。
图3 设备浏览
设备管理系统自定义查找与失效查询部分,主要实现原理是通过SQL语言使用ODBC API接口,实现Microsoft Access数据库的访问。SQL(结构化查询语言)是一种数据库查询语言,主要实现关系数据库系统的查询、添加、删除等操作。SQL语言主要由以下几部分组成:
(1)数据查询语言(DQL)。数据查询语言DQL基本结构包括SELECT子句和FROM子句;
(2)数据定义语言(DDL)。包括创建/删除数据库、创建/删除表、定义约束等语句,包括CREATE、ALTER、DROP等语句;
(3)数据操作语言(DML)用于操作数据表,如增加、查询、修改、删除等操作。常用操作包括:Insert(插入数据)、Delete(删除数据)、Select(查询数据)和Updata(修改数据);
(4)数据控制语言DCL用于授予或回收访问数据库特权,控制数据库操纵事务的时间及效果,对数据库进行监视等。包括:GRANT、COMMIT、REVOKE、ROLLBACK等语句。
这里查询部分为例,进行简要说明,查询部分代码如下所示:
本文采用Visual C++6.0作为开发平台,开发了设备管理系统,解决了目前本单位设备日益增多、设备信息管理复杂的局面,大大提高设备管理效率,为实现设备信息管理自动化提供了便利条件,得到了设备管理人员的好评,对从事设备管理的同行,具备一定的参考借鉴价值。
[1]魏 朗,陈 涛.Visual C++程序设计攻略教程[M].西安:西安电子科技大学出版社,2004.
[2]岳 亮.在VC中利用WORD生成图文报告[R].北京:电脑编程技巧与维护,2002,(5)43-44.
[3]朱 敏,沈同圣,等.VC++与VBA结合实现复杂报表[J],计算机应用与软件,2005,(2):42-43.