Labview中远程数据库访问技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络
共享方式访问远程Access数据库进行了详细介绍,最后给出了应用该方法开发的一个实例。关
键词:LabviewADO远程数据库引言Labview是美国NI公司开发的一种图形化编程语言,其主
要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且
摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络共享方式访问远程Access数据库进行了详细介绍,最后给出了应用
该方法开发的一个实例。
关键词:Labview ADO 远程数据库
引言
Labview 是美国NI公司开发的一种图形化编程语言,其主要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview
环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且监控系统自身也是企业生产管理系统的一个子系统,因此不可避免地要访问本地或远程数据库。Labview开发版中并没有提供直接与通用数据库接口的工具,但可以
通过以下方法解决:购买NI公司开发的附加软件工具包;利用其它语言如VC++编写DLL访问数据库;利用ADO控件访问数据库。[1]Labview支持Activex控件,与其它方法相比基于ADO技术构建本地或远程数据库访问接口不失为一种简单而又经济
的方法。
1 ADO技术简介
ADO(Activex Data Objects)是Microsot为OLE DB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。ADO接口编程模型中包括连接(connection)、命令(command)、参数(parameter)、
记录集(recordset)、字段(field)、错误(error)、属性(property)、集合(collection)、事件(event)等元素。其中connection、command、recordset是三个主体对象,parameters、fields、errors、properties、是四个集合对象。ADO的一般操作方式为:1 连接到数据源;2 指定访问数据源的命令;3 执行命令;4 将命令执行后产生的结果保存在缓存中;5 更新数据源。ADO接口继承了OLE DB的高速性,可以高速访
问本地或远程的数据源。
2在Labview 中使用ADO接口
在Labview 中使用ADO接口访问数据库一般包括以下几个步骤:建立ADO控件;连接到数据源;生成SQL命令;执行命令;关闭连接。具体步骤如图1 所示。
2.1建立ADO控件
在前面板控件模板中选择Activex子模板单击Automation Refnum项,右键单击Select Activex Class的Browse从类型库中选择
Microsoft Activex Data Objects 2.7 library Version 2.7,之后可以向框图程序中加
入connection、command、recordset等对象。
2.2连接到数据源
首先在Diagram中单击鼠标右键,从Function模板选择communication
子模板,从中选择Activex项的Automation Open 与ADODB_Connection相连即
可打开连接。接着同样从communication子模板的Activex项中选择
Invoke node (方法节点)并与Automation Open 相连,在其上单击右键选择methods项的Open方法即出现图1中所示的节点。其中“Open”表示该节点为打开“连接对象”,“ConnectionString”是连接到数据源的字符串,“UserID”和“Password”
是连接到数据源的用户名和密码,左侧小黑三角表示写入,可以采用字符串控件或字符串常量为其赋值。
图1 Labview 中访问数据库
2.3生成SQL命令、执行命令
采用与建立“打开连接”方法相同的步骤建立执行节点,如图1中所示:其
中“Execute”右端的小三角表示读出,“CommandText”表示需要执行的SQL命令文本,该命令文本可由字符串控件或字符串常量赋值。如果需要执行带参数的命令,则可以采用Labview提供的“格式化字符串生成子VI”(format into string)来定制生成所需要的SQL命令文本。例如可以使用“Create”命令创建表,用“Drop”命令删除表,用“Insert”命令向表中插入数据,用“Select”命令进行查询并返回操作结果等(具体的操作命令格式可以参考相关的SQL语言手册)。RecordsAffected返回一个长整型数值表示命令执行后受影响的记录集的数目。若要对执行后的记录进行显示或读取字段值则需要建立“Recordset”对象,并与“Execute”相连然后再进行相关的操作。
2.4关闭连接
对数据库访问操作完毕后要及时关闭连接对象以释放内存和所用的系统资源。与建立连接对象的“Open”方法和“Execute”方法类似,先建立“Invoke Node ”选
择“Close”方法关闭连接,从“Function”模板上单击“Communication”子模板选择“Activex”中的“Automation Close”项并连线。图1中使用了一个顺序结构,目的是为了使访问数据库按一定的顺序运行,不致发生命令尚未执行完毕而关闭连接的错误。
3 访问远程数据库
在Labview中访问远程数据库的途径有以下几种:(1)采用NI公司开发的数据库访问软件包实现对本地或远程数据库访问,该软件包需单独购买。;(2)
基于RDS技术构建客户端/服务器的远程数据库访问模式,该方案要求系统有数据
库服务器如SQL Server 等,同时也要求对ADO RDS技术有深入的了解;(3)通
过Web控件访问数据库访问页模式。这种方案以网页浏览的方式交互的访问数据库访问页,对于监测系统而言其实时性难以满足,同时也需要借助其它语言如VBscr ip t 或JavaScript等。如需要访问SQL Server则在连接字符串中设定相应的数据源以
及远程计算机名和所要访问的数据库名即可实现。考虑到目前监控系统大多处于局域网内且系统要求实时、高速地访问数据库,在Labview中以访问共享文件或网络驱动器中的远程数据库的方式实现远程访问因其简单、经济而具有较高的实际意义。