- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabWindows/CVI的数据库编程研究与分析
摘要:在复杂的大型测试系统的软件开发中,面对大量数据的存储、管理和处理。数据库是测试系统中不可缺少的重要组成部分。开放式数据库互联(ODBC)规范提供的一组对数据库访问的标准API为数据库的管理和应用程序开发提供了强大的工具。基于此介绍了在LabWindows/CVI平台下,应用ODBC和SQLToolkit工具包与Oracle数据库交互的过程和程序实例。实践证明,此方法简单、可靠,实际开发中可用性比较强。
在测试系统的应用开发中,测试数据通常是以文件的方式进行组织管理的。这样的数据存储方式有一定的局限性,特别是远程测试系统,对于大量的数据不能及时的反馈。要实现方便灵活的管理和访问,数据库是一种必然的选择。
LabWindows/CVI是一个完全的标准C开发环境,用于开发虚拟仪器应用系统。CVI5.5及以后的版本提供了支持数据库的sQLTOOLKIT工具包,该工具包提供了丰富的数据库操作函数,给开发带来了方便和快捷。
1基于PCI的数据采集
对于非NI公司的PCI数据采集卡,一般的驱动程序都是以动态链接库的形式提供的。对于CVI而言,可以直接利用驱动程序的动态链接库文件实现对采集卡的控制。本文采用中泰PCI-8333数据采集卡进行信号采集、存储和输出。PCI-8333数据采集卡具备丰富的采集与控制方法,同时也提供了动态链接库文件和头文件。
1.1缩写采集卡头文件
虽然厂商提供了头文件,但是LabWindows/CVI需要用c语言对头文件进行改写,参照厂商提供的头文件,编写部分方法声明如下:
注意,头文件中包含的方法一定要与动态链接库中的方法—致。编写后,将该头文件添加到应用程序中。在程序源文件中声明头文件,添加#include“PCI8KP.h”。
1.2产生dll导入库文件
将采集卡厂商提供的动态链接库文件加入刭应用程序所在的文件夹中,选择菜单:Option-GenerateDLLImportLibrary,在弹出的对话框中选择OK按钮,会弹出动态链接库选择对话框,选择加入到程序中的动态链接库后,会在该文件夹下产生导入库。将该导入库也加入到当前程序的工程中。
1.3应用动态链接库
上面的两个步骤完成后,便可在CVI应用程序中使用该动态链接库,调用头文件中已声明的方法进行数据采集源程序的编写,实现对效据采集卡的控制。
2ODBC及SQLToolkit工具包
ODBC(OpenDatabaseConnectivity,开放数据库互连)是Microsoft公司开发的一套开放数据库系统应用程序接口规范,它提供了统一的数据库应用编程接口(API),为应用程序提供了一套高层调用接口规范和基于动态连接库的运行支持环境。使用ODBC开发数据库应用时,应用程序调用的是标准的ODBC函数和SQL语句,数据库底层操作由各个数据库的驱动程序完成。因此应用程序有很好的适应性和可移植性。
LabWindows/CVISQLToolkit是用于CVI数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大部分的数据库操作和一些高级数据库访问功能。LabWindows/CVISQLToolkit支持主流的数据库驱动,对于数据库开发商及第三方开发者提供的驱动,LabWindows/CVISQLToolkit也一样采用标准的ODBC编译方式,通过这种扩展方式,可以灵活支持任何符合ODBC开发标准的数据库系统。
3数据库操作
Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统。Orade数据库有如下几个强大的特性:支持多用户、大事务量的事务处理,数据安全性和完整性的有效控制,支持分布式数据处理等。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。
3.1创建数据库
最后创建数据存储DATA_ACQUIRE,这里不再列举数据库脚本代码。
3.2创建DSN
在使用工具包之前,首先需要在操作系统中的ODBC数据源中创建一个DSN,工具包与数据库的链接就是建立在DSN基础上的。创建DSN的步骤如下:
(1)在操作系统控制面板中选择“数据源(ODBC)”。
(2)选择“系统DSN选项卡”添加按钮。
(3)在出现的“创建新数据源”对话框驱动程序列表中选"OracleinOraOb10g_homel”,点击完成。
(4)配置"OracleODBCDriverConfiguration”,如图2所示:
这样就完成了DSN的创建,从此以后,工具包就可以利用这个DSN访问与之相关联的数据库了。
3.3采集数据插入数据库
3.4显示结果
检索数据库中所有的数据,提取DATA字段,将数据组合成数组,通过Graph控件把数据显示出来。也可以按照时间条件检索数据库,Graph控件中将会显示符合查询条件的数据。
4结论
CVI和数据库是开发虚拟仪器应用软件的不可缺少的组成部分,利用专门的数据库接口工具包可以方便地实现CVI应用程序与数据库的链接。本系统的实现表明,通过CVI与Oracle数据库质检进行数据交互,使得测试系统有了强大的功能,在组建复杂的测试系统中具有广泛的应用价值。