LabVIEW操作MySQL数据库(4)-编程实例(含源程序下载链接)

下面以文章《LabVIEW操作MySQL数据库(1)-MySQL的下载、安装和重新配置》、《LabVIEW操作MySQL数据库(2)-使用MySQL WorkBench创建数据库及其表格和操作表格记录的方法》和《LabVIEW操作MySQL数据库(3)-创建LabVIEW程序与MySQL数据库的连接通道》中建立的数据库thmonitoring和ODBC数据源labview为基础,介绍从数据库中读取记录、插入记录、修改记录和删除记录的方法。本文源程序和其他序列文章下载链接:https://download.csdn.net/download/wuzhuokui/85562307

(一)读取记录

一)读取指定的单条记录

1)实例描述

使用LabVIEW建立一个VI文件,命名为“读取指定的单条记录.vi”。在该VI中实现功能:判断用户表users中是否存在帐号为“admin”和密码为“123456”的记录,若存在,读出该条记录的所有信息并显示,若不存在,弹出对话框提示。

2)实现方法

1)在框图程序(Block Diagram)窗体中放置一个Invoke Node节点(路径:All Functions-Communication-ActiveX-Invoke Node),右键点击该节点,进行如下操作:

2)在弹出的对话框中通过图示操作寻找Microsoft ActiveX Data Objects 2.7 Library Version 2.7(注意,这里示例是2.7版本,建议有更高版本选择更高版本)。若找不到对应组件,则点击“Browse…”按钮,通过地址C:\Program Files (x86)\Common Files\System\ado寻找引入msado15.dll、msado28.tlb、msado27.tlb、msado26.tlb、msado25.tlb、msado21.tlb、msado20.tlb中的任意一个文件,这7个文件分别对应ADO控件的7个版本,先列的版本最高,建议优先选择高版本的ADO控件;

3)选择ADO控件后,按下图,勾选Show Creatable Objects Only,然后选择Connection后确定。

4)如下图,左键点击Invoke Node节点,选择Method为Open。

5) 在框图程序(Block Diagram)窗体中放置一个Automation Open节点(节点路径:All Functions-Communication-ActiveX-Automation Open),给其输入端口Automation Refnum创建一个Constant常量,右键点击该常量,选择其Class为ADODB._Connection。

6)对放置的节点进行如下连接,此时实现了程序与MySQL数据库的连接

7)复制粘贴步骤1)放置的Invoke Node节点,右键单击该节点,修改其Method为Execute;

8)对放置的Invoke Node节点进行如下连接,此时程序实现了给MySQL Server发送SQL命令“select * from users where account='admin' and password='123456';”,用于查询数据表users中是否存在帐号为“admin”和密码为“123456”的记录

9)在框图程序(Block Diagram)窗体中放置一个Property Node节点(路径:All Functions-Communication-ActiveX-Property Node),右键点击该节点,进行如下操作:

10)左键单击刚才的Property Node节点,选择其Property为EOF,即是否记录为空的取值,为true表示记录为空,为false表示记录存在;

11)对加入的节点进行如下连接,此时实现了读取以上SQL命令的查询记录是否存在,存在返回false,不存在返回true

12)放置一个case结构,实现若为true(即记录不存在),则提示“查询的用户不存在!”,如下图所示:

13)若case结构的输入为false(即记录存在),则用6个指示型控件分别显示查询记录的帐号、密码、姓名、性别、手机和邮箱信息,实现方法如下:

①从现有程序中复制粘贴一个Invoke Node节点,右键点击该节点,将其类选择为“ADODB._Recordset”,如下图所示;

再左键点击该节点,将该节点的方法设置为“MoveFirst”,如下图所示:

②对放置的节点进行如下方式连接,此时实现指针指向查询结果的第一条记录

③从现有程序中复制粘贴一个Property Node节点,左键点击该节点,将其属性选择为“Fields”,如下图所示;

④对放置的节点进行如下方式连接,此时实现获取读取记录的所有列

⑤从现有程序中复制粘贴一个Property Node节点,进行如下方式连接,然后左键点击该节点,将其属性设置为Count,此时实现获取读取记录的列数

⑥放入一个for循环和一个case结构,准备循环读取各列的值,因为users有6列,则对case结构需要补充至6个case;

⑦从现有程序复制方法为MoveFirst的那个Invoke Node节点,粘贴进case 0框,然后进行如下方式连接,并将其方法设置为Fields,并放置一个值为0的数字常量,连接该节点的Index端口,此时实现获取第0列的对象

⑧从现有程序中复制粘贴一个Property Node节点,进行如下方式连接,然后左键点击该节点,将其属性设置为Value,此时实现读取第0列的值

⑨放入一个Variant To Data节点(路径:All Functions-Communication-ActiveX-Variant To Data),再放入一个空字符串常量,进行如下方式连接,然后右键点击该节点的Data的端口,创建一个指示型控件,并将该指示型控件的名称修改为“帐号”,此时实现将第0列的值转换为字符串格式的数据,并通过字符串型指示型控件在前面板显示

⑩复制case 0中的所有框图,复制进其他case,将Item节点的Index输入端口的值和字符串型指示型控件的值对应修改,分别如如下图所示:

case 1的框图程序

case 2的框图程序

case 3的框图程序

case 4的框图程序

case 5的框图程序

说明:测试时发现性别显示为“?”号,此不为程序错误。这是因为在文章《LabVIEW操作MySQL数据库(2)-使用MySQL WorkBench创建数据库及其表格和操作表格记录的方法》中users表格sex列的数据类型设置为“VARCHAR(1)”,应将其修改为“VARCHAR(2)”,则可解决该问题

14)程序运行效果如下图所示:

二)读取一个表格的所有记录

1)实例描述

使用LabVIEW建立一个VI文件,命名为“读取一个表格的所有记录.vi”。在该VI中实现功能:读取表格threcords中的所有测量记录并显示在前面板的Table控件中。

2)实现方法

1)在前面板放置一个Table控件(路径为:All Controls—List & Table—Table),放入后右键点击该控件,选择Properties,进行如下设置:

2)接着输入列头的文字内容,并调整各列大小,效果如下图所示:

3)由于本程序的功能跟上面VI“读取指定的单条记录.vi”实现的功能差不多,因此可以在“读取指定的单条记录.vi”的基础上修改。打开“读取指定的单条记录.vi”,复制粘贴其框图程序至本vi的框图程序;

4)对复制过来的程序进行如下两处的修改,实现输出以一维数组形式表示的第一条测量记录

5)对上面的程序添加一个顺序结构,放置后添加为两帧,以在第2帧实现指针移动,可以读取到下一条记录;

6)复制粘贴MoveFirst节点和EOF节点到顺序结构的第2帧,并将MoveFirst节点的方法修改为MoveNext,并按下图连接,到此实现指针可以移动读取下一条记录

7)添加一个While循环,实现循环读取所有记录,如下图所示连接:

8)运行效果如下图所示:

(二)插入记录

1)实例描述

使用LabVIEW建立一个VI文件,命名为“插入记录.vi”。在该VI中实现功能:在threcords中插入一条指定的记录,温度为25.1度,湿度为60,测量时间为当前系统时间。

2)实现方法

1)从“读取指定的单条记录.vi”复制粘贴如下框图程序:

2)修改以上程序的SQL语句为符合功能要求的SQL语句,其中:Get Date/Time String节点(路径:All Controls—Time & Dialog—Get Date/Time String),以字符串的形式分别输出当前系统日期(输出当前:date string)和时间(输出端口:time string;Concatenate Strings节点(路径:All Controls—String—Concatenate Strings)用于将各字符串合成为一条类似“insert into threcords(temperature,humidity,recordtime) values(25.1,60,'2022-6-6 9:34:23’); ”的完整SQL语句

3)复制粘贴Execute节点,然后左键点击该节点的Execute位置,将该节点的方法修改为Close;

4)将新加的节点按如下方式连接,此时实现执行完SQL语句后关闭数据库连接;

5)添加一个Simple Error Handler.vi节点(路径:All Controls—Time & Dialog—Simple Error Handler.vi),并按下图方式连接;

6)运行该vi后,可打开“读取一个表格的所有记录.vi”运行查看是否成功添加了新的记录,也可以打开MySQL WorkBench进入数据库查看是否成功添加了新的记录。

(三)修改记录

1)实例描述

使用LabVIEW建立一个VI文件,命名为“修改记录.vi”。在该VI中实现功能:修改uses表中帐号为“admin”的用户的姓名为“李四”。

2)实现方法

1)从“插入记录.vi”复制粘贴如下框图程序:

2)修改以上程序的SQL语句为符合功能要求的SQL语句,即修改为“update users set name='李四' where account='admin';”;

3)运行该vi后,可打开“读取指定的单条记录.vi”运行查看是否成功修改了记录,也可以打开MySQL WorkBench进入数据库查看是否成功修改了记录。

(四)删除记录

1)实例描述

使用LabVIEW建立一个VI文件,命名为“删除记录.vi”。在该VI中实现功能:删除uses表中帐号(account)为“aaa”的记录(为了设计后的测试,要先在数据库手工添加1条帐号(account)为“aaa”的记录)。

2)实现方法

1)从“修改记录.vi”复制粘贴如下框图程序:

2)修改以上程序的SQL语句为符合功能要求的SQL语句,即修改为“delete from users where account='aaa';”;

3)运行该vi后,可以打开MySQL WorkBench进入数据库查看是否成功删除了记录。

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值