【 – 小学作文】
fangchengmi(一)
传感器与仪器仪表
文章编号:1008-0570(2006)01-1-0131-04
LabVIEW中访问数据库的几种不同方法
SeveralMethodsofAccessingDatabaseinLabview
(保定华北电力大学)毕
虎律方成李燕青李和明
Bi,HuLu,FangchengLi,YanqingLi,Heming
摘要:本文分析了在LabVIEW中访问数据库的几种方法的优缺点。重点讨论了应用ADO技术,LabSQL,LabVIEWSQLToolkit
访问数据库的方法,给出了新建数据表,新增数据、显示表中所有数据的具体实现细节。把数据库技术应用于虚拟仪器中,充分发挥了数据库的管理优势,大大扩展了虚拟仪器的功能。关键词:LabVIEW;数据库;ADO;LabSQL;LabVIEWSQLToolkit中图分类号:TP311文献标识码:A
Abstract:ThepaperanalyzesseveralmethodsofaccessingdatabasewithLabVIEWprogram.ThemethodsofcallingADO,LabSQL,SQLToolkitunderLabVIEWenvironmentarefullydiscussed,andtheimplementprocessofthreemethodsaredescribedrespectivelybythreeexamples:establishnewtable,addnewrecordtotableandreadalldatafromatable.Theoperationshowsthatthecombi-nationofdatabaseaccesstechnologyandvirtualinstrumenttakesadvantageofdatabaseinthesideofdatamanagementandexpandsthefunctionsofvirtualinstrument.
Keywords:LabVIEW;Database;ADO;LabSQL;LabVIEWSQLToolkit
引言
虚拟仪器VI(VirtualInstruments)是NationalIn-struments公司在其产品LabVIEW中首先提出的创新概念。虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据并进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器由用户自己定义功能,可以自由地组合计算机平台、硬件、软件以及完成应用系统所需要的各种功能。另外,虚拟仪器开发周期短、成本低、维护方便,易于应用新理论和新技术实现仪器的换代升级。
现代的测试测量系统大多数需要对被测对象进行全方位检测,这必然会使获取的数据量急剧增长。面对大量的数据信息,采用数据库技术,可准确反映各类数据之间的密切联系,能够有效地管理和组织数据,是现代测试测量系统的发展趋势。但是现有的
包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。它的优点是易于理解,操作简单,用户可以不学习SQL
语法。缺点是需要另外购买且价格昂贵,无疑会增加系统成本。
技术创新
(2)利用LabVIEW的ActiveX功能,调用MicrosoftADO对象,利用SQL语言实现数据库的访问。使用这种方法需要用户对MicrosoftADO以及SQL语言有较深的了解。
(3)通过第三方开发的免费工具包LabSQL访问。LabSQL利用MicrosoftADO以及SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQLVIs,简单易用。
(4)通过调用动态链接库DLL(DynamicLinkLi-brary)访问。先利用其它语言如VisualC++编写DLL,再利用LabVIEW的调用库函数节点CLFN(CallingLi-braryFunctionNode)调用此DLL访问数据库。但这种方法需要从底层进行复杂的编程才能实现,对非专业编程人员来讲是不现实的。
LabVIEW版本本身并不具备数据库访问功能,不能像VB、VC++、Delphi、PowerBuilder那样非常方便的进行数据库程序的开发。因此以LabVIEW编制的虚拟仪器系统需要其它辅助的方法来进行数据库访问。
(5)利用中间文件存取数据。先将数据存入文件之中,待测量结束后再用专门的工具将数据导入到数据库之中。这种方法需要磁盘文件作为中介,而且不具有实时性,不方便使用。实际应用中,前三种方法使用最为广泛,下面将重点讨论这三种方法。
1在LabVIEW中访问数据库方式
(1)利用NI公司的附加工具包中的数据库接口工具包LabVIEWSQLToolkit进行数据库访问。该工具毕虎:硕士研究生
教育部高等学校博士学科点专项基金20020079005
变频器与软启动器应用200例》
2利用ADO技术访问数据库
2.1ADO技术简介
:946360元/年
-131-
传感器与仪器仪表
中文核心期刊《微计算机信息》(测控自动化)2006年第22卷第1-1期
ADO(ActiveXDataObjects)是Microsoft为OLEDB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。命令ADO接口编程模型中包括连接(Connection)、
参数(Parameter)、记录集(Recordset)、字段(Command)、
错误(Error)、属性(Property)、集合(Collection)、事(Field)、
件(Event)等元素。其中Connection、Command、Recordset是三个主体对象,Parameters、Fields、Errors、Properties是四个集合对象。
Command、Recordset等对象。
(2)连接到数据源
在程序框图功能模板中选择Communication>>
ADO的一般操作方式为:1连接到数据源;2指定访问数据源的命令;3执行命令;4将命令执行后产生的结果保存在缓存中;5更新数据库。ADO的主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。
ActiveX子模板,选择其中的AutomationOpen与
ADODB._Connection相连即可打开Connection对象。接着从ActiveX子模板中选择InvokeNode并与Au-tomationOpen相连,在其上单击右键选择Methods>>
“Connection-Open,即出现图2中所示的节点。其中
“Pass-Sring”是连接到数据源的字符串,“UserID”和
是连接到数据源的用户名和密码,正确设置这Word”
些参数后便可连接到数据源。
执行命令(3)生成SQL命令、
与上一步相同,用InvokeNode调用Connection对象的Execute方法执行所要的操作。Execute方法所必需的参数为CommandText,这里为所要执行的SQL语句。例如可以使用Create命令创建表,用Drop命令删除表,用Insert命令向表中插入数据,用Select命令进行查询并返回操作结果等。本例使用Create命令创
姓名和年龄三个建了一个名为Staff的表,包括编号、
字段,其中id字段为主键,自动编号。对数据表的删除和添加数据的操作过程与建表过程类似。如果要对执行后的记录进行显示或读取字段值则需要建立
2.2LabVIEW中对ADO的调用
ADO对象在LabVIEW中是以ActiveX对象的形式提供的。LabVIEW自4.1版本就引入了支持ActiveX自动控制的功能模块,在5.1版本之后支持客户和服
技术创新
务器双方,即虽然程序是在双方各自独立存在,但它们的信息是共享的。
这种信息共享是通过客户端使用由服务器端发布的ActiveX控件来实现的。
图1展示的是LabVIEW中使用ActiveX控件的程序流程。ActiveX对象的打开和关闭是通过打开自动化节点(AutomationOpen)和关闭自动化节点(CloseReference)来实现的,属性的设置和获取则通过属性节点(PropertyNode)进行,而调用节点(InvokeNode)用于对象方法的调用。其中关键的是第二步,只有充分的利用“属性”和“方法”的设置才能成功地实现对数据库的访问。
Recordset对象,并与Execute相连。
(4)关闭连接
对数据库访问操作完毕后要及时关闭连接对象以释放内存和所用的系统资源。首先使用Connection对象的Close方法关闭数据库连接,然后使用Close
Reference关闭ActiveX自动化参数号。
图2数据库中建表的程序框图
3利用LabSQL访问数据库
3.1LabSQL简介
LabSQL是一个免费的、多数据库、跨平台的LabVIEW数据库访问工具包,由PremkcDevelopment公司的ChrisRoth和JeffreyTravis开发。目前的最新版本是LabSQLRelease1.1a,可以到网站http://jeffrey-travis.com免费下载。LabSQL支持Windows操作系统中任何基于OBDC的数据库,包括Access,SQLServ-er,Oracle,Pervasive,Sybase等。
LabSQL利用MicrosoftADO对象和SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的LabSQLVIs,简单易用。
LabSQLVIs按照功能可以分为四类:CommandVIs,ConnectionVIs,RecordsetVIs和TopLevelVIs。
CommandVIs的功能是完成一系列的基本ADO
现场总线技术应用200例》
图1LabVIEW中使用ActiveX控件的程序流程图
2.3应用实例
(1)建立ADO对象
在前面板控件模板的Refnum子模板中选择Au-tomationRefnum项,把它拖放到前面板上,在其右键菜单中选择SelectActiveXClass>>Broswer…,弹出SelectActiveXObject对话框,在类型库TypeLibrary下拉列表中选择MicrosoftActiveXDataObjects2.7LibraryVersion2.7,在下面的对象Objects列表栏中出现这个库对LabVIEW可用的对象,选中Connection对象,点击OK按钮即可。使用同样的方法可以建立
-
-元/年邮局订阅号:82-
传感器与仪器仪表
操作,例如,创建或删除一个Command,对数据库的某一个参数进行读或写等。
访问功能。其主要的功能如下:
ConnectionVIs的功能是管理LabVIEW与数据库之间的连接。
(1)支持ADO所支持的所有的数据库引擎;
(2)支持所有与ODBC或OLEDB兼容的数据库驱动程序;
RecordsetVIs用于对数据库中的记录进行各种操作,例如,创建或删除一条记录,对记录中的某一个条目进行读或写等。
TopLevelVIs属于顶层的LabSQL应用,对前三类LabSQLVIs某些功能的封装,例如,SQLExecute.vi可用于直接执行命令。
(3)具有高度的可移植性,在任何情况下,用户通过改变DBToolsOpenConnectionVI的输入参数ConnectionString就可以更换数据库;
(4)可以将数据库中ColumnValues的数据类型转换为标准LabVIEWDatabaseConnectivityToolset的数据类型,这进一步增强了它的可移植性;
3.2LabSQL应用实例
本应用实例是向数据表添加记录,所使用的数据源与上例相同,数据表为staff表。具体步骤如下:
第一步:建立与数据库的连接。首先通过ADOConnectionCreate.vi创建一个Connection对象,然后利用ADOConnectionOpen.vi建立与数据库的连接。数据库由ADOConnectionOpen.vi的ConnectionString指定,此参数由前面板的字符串控件提供,如图3所示。
在前面板table第二步:生成SQL命令,执行命令。
控件中输入表名,name和age控件中输入字段值。在程序框图中使用FormatIntoString生成SQL命令,将它连接到ADOConnectionExecute.vi即可执行,同时可在前面板CommandText控件中显示此命令。
第三步:断开与数据库之间的连接。利用ADOConnectionClose.vi关闭Connection对象,并使用ADO
(5)与SQL兼容;
(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;
(7)用户可以完全不需要学习SQL语法。
用户可以使用LabVIEWSQLToolkit在LabVIEW中支持ODBC的本地或远程数据库,例如MicrosoftAccess,MicrosoftSQLSever,SybaseSQLServer以及Oracle等。
4.2应用实例
本应用实例是显示上面所建staff表中的所有记录,所使用的数据源与上面两例相同。具体步骤如下:
(1)使用DBToolsOpenConnection打开数据库连接。
ConnectionDestroy.vi删除Connection对象。
(2)显示指定数据表中所有数据。
使用DBToolsListTables以一维数组形式列出指定数据库中的所有表,同时显示在前面板数组控件ta-bles中。用户指定TableIndex后,通过索引数组函数IndexArray索引其中一个表。然后将表名连接到DBToolsListColumns和DBToolsSelectAllData。
DBToolsListColumns的Columns参数用一维字符串数组返回指定表的字段名,通过属性节点将字段名显示在表格控件TableData的首行,同时使用数组
技术创新
图3向数据表添加记录的前面板
大小函数ArraySize取得字段数,即表的列数,显示在Columns中。
图4向数据表添加记录的程序框图
4利用LabVIEWSQLToolkit访问
数据库
4.1LabVIEWSQLToolkit简介
LabVIEWSQLToolkit(又被称作为LabVIEWDatabaseConnectivityToolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库
变频器与软启动器应用200例》
图5显示表中所有数据的前面板
DBToolsSelectAllData的Data参数以二维字符串数组形式返回表中所有数据,显示在TableData中,同时使用ArraySize和IndexArray函数取得记录数,
:946360元/年
-133-
传感器与仪器仪表
中文核心期刊《微计算机信息》(测控自动化)2006年第22卷第1-1期
也就是行数,显示在Rows中。
(3)使用DBToolsCloseConnection断开连接。
图6所示。此程序的前面板和程序框图如图5、
教授,研究方向:电气设备故障诊断。
Authorbriefintroduction:Bi,Hu(1982),male,master,
majorinelectricalequipmentfaultdiagnosis.Lu,Fangcheng(1963),male,doctor,professor,majorinelec-tricalequipmentfaultdiagnosis.Li,Yanqing(1974),male,doctor,instructor,majorinelectricalequipmentfaultdi-agnosis.Li,Heming(1957),male,master,professor,majorinelectricalequipmentfaultdiagnosis.(071003河北保定华北电力大学电力系统保护与动态安全监控教育部重点实验室)毕虎律方成李燕青李和明
图6显示一个数据表中所有数据的程序框图
5结论
综上所述,使用ADO,LabSQL或LabVIEWSQL
Toolkit访问数据库的基本步骤都是相同的,都要经过连接数据库、执行操作、断开连接这三个步骤。使用ADO主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少,但需要用户对MicrosoftA-
(KeyLaboratoryofPowerSystemProtectionandDynamicSecurityMonitoringandControlunderMinistryofEduca