下面以文章《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';”;
文章来源:https://www.toymoban.com/news/detail-444556.html
3)运行该vi后,可以打开MySQL WorkBench进入数据库查看是否成功删除了记录。文章来源地址https://www.toymoban.com/news/detail-444556.html
到了这里,关于LabVIEW操作MySQL数据库(4)-编程实例(含源程序下载链接)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!