任务布置:制作简单地铁站点管理系统<2>
要求一:正确配置系统,建立基本正常的数据通道;
要求二:实现地铁站点的登记,拥有查询功能;
正文:
今天介绍labview虚拟仪器软件中 labSQL 本地调用 Access数据库 使用的方法,首先了解整体设计的 思维导图 。
在思维导图中数据库是由 Access 产生并拥有绝对控制权;DNS是数据库服务站,今天介绍的Access Driver 是服务站里的一个窗口渠道,服务于整个计算机;labsql是labview的一个插件函数包,它的原理就是通过ActiveX控件调取计算机内部的数据控制方法,这里不详细介绍:
第一步:配置系统,让计算机开启数据库服务
安装Access2003后建立SFF.mdb数据库文件,数据库软件的使用自己学,添加一张空表,命名为:dtinfo;
ODBC数据源管理器中添加数据库服务启动服务。数据源管理器的路径是:[开始>控制面板>管理工具>ODBC数据源] ,打开后会看到有用户DNS、系统DNS、文件DNS,在用户DNS里点击添加,选择Access driver开始配置参数,如下图,数据源名称命名为:myDB ;
备注:64位系统的有两个数据源管理器,如果报错请到:[C:\Windows\SysWOW64\odbcad32.exe] 配置参数。
LabSQL是一个labview数据库函数安装包,我们可以直接拖拽应用,当然也可以安装到labview系统中,推荐安装到系统方便以后调用,安装方法只需要把 labsql 文件夹复制到 <....安装目录....\National Instruments\LabVIEW 8.5\user.lib\> 文件夹下,重启Labview后在 [用户库] 里就会多出数据库功能;
配置完成后,接下来我们开始使用Labview labSQL验证数据库是否配置正确,如下图所示是打开dtinfo表中所有的数据,当错误输出为[对号]时,说明顺利完成配置数据库。
第二步:了解数据库查询、插入、修改功能的原理和使用
用labview久了是不是不爱写一行行代码了,数据库的操作是共用的东西,可能不同的语言开发环境调用相同的数据库,外部操作数据库是通过 [连接字符串] 和 [命令字符串] 来操作,下面是手动录入 地铁站点名[name] , 位置[dtx][dty] 的代码块, [%s] 是字符串格式化符号。
下面开始介绍labSQL运行机制,其实labSQL函数包是调用ActiveX引用,注意这里的引用句柄不是ActiveX容器控件引用,而是自动化引用句柄选择ActiveX类;第一个函数块功能是打开数据库,连接字符串,用户登录名和密码可以省略不填;第二个函数块是执行数据操作命令,相关语法的使用请参考下面代码块:
[select]语法
Select * FROM dtinfo where ID>1 ; //选择提取ID号大于1的数据行
[insert]语法
Insert Into dtinfo
(name,dtx,dty)
values('池东站','',''); //在dtinfo表中插入一条数据,ID号自动编号
[modify]语法
DNS=myDB;
Select * From dtinfo; Criteria[]='id=12'; Fields[]={2}; Values[]={4500}; //找到ID为12的数据行,将2号字段替换为4500 Criteria[]='name=池东'; Fields[]={1}; Values[]={ '池东站' }; //找到name为池东的数据行,将1号字段替换为池东站
修改数据库的代码比较复杂,下面先用 思维导图 的方法来理解整体运作过程。
登录权限,搜索指定ID,得到指定ID数据条,根据引索row修改数据,执行更新数据库指令。
了解修改数据大体步骤后,然后再进行代码的详细讲解,其实核心部分就是 [find函数块] 和 [update函数块] 的使用,运行下面代码可实现:在 [myDB数据源] 的 [dtinfo表] 里面,搜索到 [ID=12] 的数据行,将 [第1个字段] 数据改为4500;
第三步:设计数据库操作面板
针对本节布置的任务,我们需要设计站点登记函数,就是插入数据行,我们可以将labSQL的 函数范例 修改一下,让例子变成可用的函数块,如下图就是把 [没有外部接口] 的范例转换成 [可用功能的功能块] 。
接下来我们来修改把 [本地读取文件] 修改为 [读取数据库] ,完成初始化读入查询功能;因为原设计表格里面没有ID,所以读取数据库后去掉 [ID列] ,才可以匹配运行。这样就完成了 [本地零散管理] 到 [数据库集中管理] 的修改工作。
下面是labSQL函数块与其他程序配合的运行效果
编辑语言:labview
软件版本:8.5
- 本节结束 -
<禁止复制标志>
Dream doing
山东济南
2018年7月13日