下面以文章《LabVIEW操作MySQL數(shù)據(jù)庫(kù)(1)-MySQL的下載、安裝和重新配置》、《LabVIEW操作MySQL數(shù)據(jù)庫(kù)(2)-使用MySQL WorkBench創(chuàng)建數(shù)據(jù)庫(kù)及其表格和操作表格記錄的方法》和《LabVIEW操作MySQL數(shù)據(jù)庫(kù)(3)-創(chuàng)建LabVIEW程序與MySQL數(shù)據(jù)庫(kù)的連接通道》中建立的數(shù)據(jù)庫(kù)thmonitoring和ODBC數(shù)據(jù)源labview為基礎(chǔ),介紹從數(shù)據(jù)庫(kù)中讀取記錄、插入記錄、修改記錄和刪除記錄的方法。本文源程序和其他序列文章下載鏈接:https://download.csdn.net/download/wuzhuokui/85562307
(一)讀取記錄
一)讀取指定的單條記錄
(1)實(shí)例描述
使用LabVIEW建立一個(gè)VI文件,命名為“讀取指定的單條記錄.vi”。在該VI中實(shí)現(xiàn)功能:判斷用戶表users中是否存在帳號(hào)為“admin”和密碼為“123456”的記錄,若存在,讀出該條記錄的所有信息并顯示,若不存在,彈出對(duì)話框提示。
(2)實(shí)現(xiàn)方法
1)在框圖程序(Block Diagram)窗體中放置一個(gè)Invoke Node節(jié)點(diǎn)(路徑:All Functions-Communication-ActiveX-Invoke Node),右鍵點(diǎn)擊該節(jié)點(diǎn),進(jìn)行如下操作:
2)在彈出的對(duì)話框中通過(guò)圖示操作尋找Microsoft ActiveX Data Objects 2.7 Library Version 2.7(注意,這里示例是2.7版本,建議有更高版本選擇更高版本)。若找不到對(duì)應(yīng)組件,則點(diǎn)擊“Browse…”按鈕,通過(guò)地址C:\Program Files (x86)\Common Files\System\ado尋找引入msado15.dll、msado28.tlb、msado27.tlb、msado26.tlb、msado25.tlb、msado21.tlb、msado20.tlb中的任意一個(gè)文件,這7個(gè)文件分別對(duì)應(yīng)ADO控件的7個(gè)版本,先列的版本最高,建議優(yōu)先選擇高版本的ADO控件;
3)選擇ADO控件后,按下圖,勾選Show Creatable Objects Only,然后選擇Connection后確定。
4)如下圖,左鍵點(diǎn)擊Invoke Node節(jié)點(diǎn),選擇Method為Open。
5) 在框圖程序(Block Diagram)窗體中放置一個(gè)Automation Open節(jié)點(diǎn)(節(jié)點(diǎn)路徑:All Functions-Communication-ActiveX-Automation Open),給其輸入端口Automation Refnum創(chuàng)建一個(gè)Constant常量,右鍵點(diǎn)擊該常量,選擇其Class為ADODB._Connection。
6)對(duì)放置的節(jié)點(diǎn)進(jìn)行如下連接,此時(shí)實(shí)現(xiàn)了程序與MySQL數(shù)據(jù)庫(kù)的連接:
7)復(fù)制粘貼步驟1)放置的Invoke Node節(jié)點(diǎn),右鍵單擊該節(jié)點(diǎn),修改其Method為Execute;
8)對(duì)放置的Invoke Node節(jié)點(diǎn)進(jìn)行如下連接,此時(shí)程序實(shí)現(xiàn)了給MySQL Server發(fā)送SQL命令“select * from users where account='admin' and password='123456';”,用于查詢數(shù)據(jù)表users中是否存在帳號(hào)為“admin”和密碼為“123456”的記錄:
9)在框圖程序(Block Diagram)窗體中放置一個(gè)Property Node節(jié)點(diǎn)(路徑:All Functions-Communication-ActiveX-Property Node),右鍵點(diǎn)擊該節(jié)點(diǎn),進(jìn)行如下操作:
10)左鍵單擊剛才的Property Node節(jié)點(diǎn),選擇其Property為EOF,即是否記錄為空的取值,為true表示記錄為空,為false表示記錄存在;
11)對(duì)加入的節(jié)點(diǎn)進(jìn)行如下連接,此時(shí)實(shí)現(xiàn)了讀取以上SQL命令的查詢記錄是否存在,存在返回false,不存在返回true:
12)放置一個(gè)case結(jié)構(gòu),實(shí)現(xiàn)若為true(即記錄不存在),則提示“查詢的用戶不存在!”,如下圖所示:
13)若case結(jié)構(gòu)的輸入為false(即記錄存在),則用6個(gè)指示型控件分別顯示查詢記錄的帳號(hào)、密碼、姓名、性別、手機(jī)和郵箱信息,實(shí)現(xiàn)方法如下:
①?gòu)默F(xiàn)有程序中復(fù)制粘貼一個(gè)Invoke Node節(jié)點(diǎn),右鍵點(diǎn)擊該節(jié)點(diǎn),將其類選擇為“ADODB._Recordset”,如下圖所示;
再左鍵點(diǎn)擊該節(jié)點(diǎn),將該節(jié)點(diǎn)的方法設(shè)置為“MoveFirst”,如下圖所示:
②對(duì)放置的節(jié)點(diǎn)進(jìn)行如下方式連接,此時(shí)實(shí)現(xiàn)指針指向查詢結(jié)果的第一條記錄;
③從現(xiàn)有程序中復(fù)制粘貼一個(gè)Property Node節(jié)點(diǎn),左鍵點(diǎn)擊該節(jié)點(diǎn),將其屬性選擇為“Fields”,如下圖所示;
④對(duì)放置的節(jié)點(diǎn)進(jìn)行如下方式連接,此時(shí)實(shí)現(xiàn)獲取讀取記錄的所有列;
⑤從現(xiàn)有程序中復(fù)制粘貼一個(gè)Property Node節(jié)點(diǎn),進(jìn)行如下方式連接,然后左鍵點(diǎn)擊該節(jié)點(diǎn),將其屬性設(shè)置為Count,此時(shí)實(shí)現(xiàn)獲取讀取記錄的列數(shù);
⑥放入一個(gè)for循環(huán)和一個(gè)case結(jié)構(gòu),準(zhǔn)備循環(huán)讀取各列的值,因?yàn)閡sers有6列,則對(duì)case結(jié)構(gòu)需要補(bǔ)充至6個(gè)case;
⑦從現(xiàn)有程序復(fù)制方法為MoveFirst的那個(gè)Invoke Node節(jié)點(diǎn),粘貼進(jìn)case 0框,然后進(jìn)行如下方式連接,并將其方法設(shè)置為Fields,并放置一個(gè)值為0的數(shù)字常量,連接該節(jié)點(diǎn)的Index端口,此時(shí)實(shí)現(xiàn)獲取第0列的對(duì)象;
⑧從現(xiàn)有程序中復(fù)制粘貼一個(gè)Property Node節(jié)點(diǎn),進(jìn)行如下方式連接,然后左鍵點(diǎn)擊該節(jié)點(diǎn),將其屬性設(shè)置為Value,此時(shí)實(shí)現(xiàn)讀取第0列的值;
⑨放入一個(gè)Variant To Data節(jié)點(diǎn)(路徑:All Functions-Communication-ActiveX-Variant To Data),再放入一個(gè)空字符串常量,進(jìn)行如下方式連接,然后右鍵點(diǎn)擊該節(jié)點(diǎn)的Data的端口,創(chuàng)建一個(gè)指示型控件,并將該指示型控件的名稱修改為“帳號(hào)”,此時(shí)實(shí)現(xiàn)將第0列的值轉(zhuǎn)換為字符串格式的數(shù)據(jù),并通過(guò)字符串型指示型控件在前面板顯示;
⑩復(fù)制case 0中的所有框圖,復(fù)制進(jìn)其他case,將Item節(jié)點(diǎn)的Index輸入端口的值和字符串型指示型控件的值對(duì)應(yīng)修改,分別如如下圖所示:
case 1的框圖程序
case 2的框圖程序
case 3的框圖程序
case 4的框圖程序
case 5的框圖程序
說(shuō)明:測(cè)試時(shí)發(fā)現(xiàn)性別顯示為“?”號(hào),此不為程序錯(cuò)誤。這是因?yàn)樵谖恼隆禠abVIEW操作MySQL數(shù)據(jù)庫(kù)(2)-使用MySQL WorkBench創(chuàng)建數(shù)據(jù)庫(kù)及其表格和操作表格記錄的方法》中將users表格sex列的數(shù)據(jù)類型設(shè)置為“VARCHAR(1)”,應(yīng)將其修改為“VARCHAR(2)”,則可解決該問(wèn)題;
14)程序運(yùn)行效果如下圖所示:
二)讀取一個(gè)表格的所有記錄
(1)實(shí)例描述
使用LabVIEW建立一個(gè)VI文件,命名為“讀取一個(gè)表格的所有記錄.vi”。在該VI中實(shí)現(xiàn)功能:讀取表格threcords中的所有測(cè)量記錄并顯示在前面板的Table控件中。
(2)實(shí)現(xiàn)方法
1)在前面板放置一個(gè)Table控件(路徑為:All Controls—List & Table—Table),放入后右鍵點(diǎn)擊該控件,選擇Properties,進(jìn)行如下設(shè)置:
2)接著輸入列頭的文字內(nèi)容,并調(diào)整各列大小,效果如下圖所示:
3)由于本程序的功能跟上面VI“讀取指定的單條記錄.vi”實(shí)現(xiàn)的功能差不多,因此可以在“讀取指定的單條記錄.vi”的基礎(chǔ)上修改。打開(kāi)“讀取指定的單條記錄.vi”,復(fù)制粘貼其框圖程序至本vi的框圖程序;
4)對(duì)復(fù)制過(guò)來(lái)的程序進(jìn)行如下兩處的修改,實(shí)現(xiàn)輸出以一維數(shù)組形式表示的第一條測(cè)量記錄;
5)對(duì)上面的程序添加一個(gè)順序結(jié)構(gòu),放置后添加為兩幀,以在第2幀實(shí)現(xiàn)指針移動(dòng),可以讀取到下一條記錄;
6)復(fù)制粘貼MoveFirst節(jié)點(diǎn)和EOF節(jié)點(diǎn)到順序結(jié)構(gòu)的第2幀,并將MoveFirst節(jié)點(diǎn)的方法修改為MoveNext,并按下圖連接,到此實(shí)現(xiàn)指針可以移動(dòng)讀取下一條記錄;
7)添加一個(gè)While循環(huán),實(shí)現(xiàn)循環(huán)讀取所有記錄,如下圖所示連接:
8)運(yùn)行效果如下圖所示:
(二)插入記錄
(1)實(shí)例描述
使用LabVIEW建立一個(gè)VI文件,命名為“插入記錄.vi”。在該VI中實(shí)現(xiàn)功能:在threcords中插入一條指定的記錄,溫度為25.1度,濕度為60,測(cè)量時(shí)間為當(dāng)前系統(tǒng)時(shí)間。
(2)實(shí)現(xiàn)方法
1)從“讀取指定的單條記錄.vi”復(fù)制粘貼如下框圖程序:
2)修改以上程序的SQL語(yǔ)句為符合功能要求的SQL語(yǔ)句,其中:Get Date/Time String節(jié)點(diǎn)(路徑:All Controls—Time & Dialog—Get Date/Time String),以字符串的形式分別輸出當(dāng)前系統(tǒng)日期(輸出當(dāng)前:date string)和時(shí)間(輸出端口:time string);Concatenate Strings節(jié)點(diǎn)(路徑:All Controls—String—Concatenate Strings)用于將各字符串合成為一條類似“insert into threcords(temperature,humidity,recordtime) values(25.1,60,'2022-6-6 9:34:23’); ”的完整SQL語(yǔ)句;
3)復(fù)制粘貼Execute節(jié)點(diǎn),然后左鍵點(diǎn)擊該節(jié)點(diǎn)的Execute位置,將該節(jié)點(diǎn)的方法修改為Close;
4)將新加的節(jié)點(diǎn)按如下方式連接,此時(shí)實(shí)現(xiàn)執(zhí)行完SQL語(yǔ)句后關(guān)閉數(shù)據(jù)庫(kù)連接;
5)添加一個(gè)Simple Error Handler.vi節(jié)點(diǎn)(路徑:All Controls—Time & Dialog—Simple Error Handler.vi),并按下圖方式連接;
6)運(yùn)行該vi后,可打開(kāi)“讀取一個(gè)表格的所有記錄.vi”運(yùn)行查看是否成功添加了新的記錄,也可以打開(kāi)MySQL WorkBench進(jìn)入數(shù)據(jù)庫(kù)查看是否成功添加了新的記錄。
(三)修改記錄
(1)實(shí)例描述
使用LabVIEW建立一個(gè)VI文件,命名為“修改記錄.vi”。在該VI中實(shí)現(xiàn)功能:修改uses表中帳號(hào)為“admin”的用戶的姓名為“李四”。
(2)實(shí)現(xiàn)方法
1)從“插入記錄.vi”復(fù)制粘貼如下框圖程序:
2)修改以上程序的SQL語(yǔ)句為符合功能要求的SQL語(yǔ)句,即修改為“update users set name='李四' where account='admin';”;
3)運(yùn)行該vi后,可打開(kāi)“讀取指定的單條記錄.vi”運(yùn)行查看是否成功修改了記錄,也可以打開(kāi)MySQL WorkBench進(jìn)入數(shù)據(jù)庫(kù)查看是否成功修改了記錄。
(四)刪除記錄
(1)實(shí)例描述
使用LabVIEW建立一個(gè)VI文件,命名為“刪除記錄.vi”。在該VI中實(shí)現(xiàn)功能:刪除uses表中帳號(hào)(account)為“aaa”的記錄(為了設(shè)計(jì)后的測(cè)試,要先在數(shù)據(jù)庫(kù)手工添加1條帳號(hào)(account)為“aaa”的記錄)。
(2)實(shí)現(xiàn)方法
1)從“修改記錄.vi”復(fù)制粘貼如下框圖程序:
2)修改以上程序的SQL語(yǔ)句為符合功能要求的SQL語(yǔ)句,即修改為“delete from users where account='aaa';”;
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-444556.html
3)運(yùn)行該vi后,可以打開(kāi)MySQL WorkBench進(jìn)入數(shù)據(jù)庫(kù)查看是否成功刪除了記錄。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444556.html
到了這里,關(guān)于LabVIEW操作MySQL數(shù)據(jù)庫(kù)(4)-編程實(shí)例(含源程序下載鏈接)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!