在LabVIEW中數(shù)據(jù)庫(kù)建立與管理功能實(shí)現(xiàn)方法研究
在LabVIEW中數(shù)據(jù)庫(kù)建立與管理功能實(shí)現(xiàn)方法研究
提出在LabVIEW中利用其ActiveX功能,調(diào)用微軟數(shù)據(jù)訪問(wèn)控件(Microsoft ADO)來(lái)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)功能的方法,文中介紹了Microsoft ADO編程模型,并給出了在LabVIEW中對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的若干實(shí)例。
關(guān)鍵詞:數(shù)據(jù)庫(kù);LabVIEW;SQL;Microsft ADO
Fu n ctions of Database in LabVIEW
Xi’an 710071, China)
在LabVIEW中利用其ActiveX功能,調(diào)用Microsoft ADO控件,再利用SQL語(yǔ)言,通過(guò)底層ODBC接口函數(shù)和ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù),其結(jié)構(gòu)層次如圖1所示。
ADO的目標(biāo)是訪問(wèn)、編輯和更新數(shù)據(jù)源;利用ADO所提供的類和對(duì)象可以完成以下操作:?
(1)連接到數(shù)據(jù)源;(2)指定訪問(wèn)數(shù)據(jù)源的命令,同時(shí)可帶變量參數(shù)或優(yōu)化執(zhí)行;(3)執(zhí)行命令;(4)如果這個(gè)命令使數(shù)據(jù)按表中行的形式返回,則將這些行存儲(chǔ)在易于檢查、操作或更改的緩存中;(5)可使用緩存行的更改內(nèi)容來(lái)更新數(shù)據(jù)源;(6)提供常規(guī)方法檢測(cè)錯(cuò)誤;ADO對(duì)象模型如圖2所示。
(1)連接到數(shù)據(jù)源;(2)指定訪問(wèn)數(shù)據(jù)源的命令,同時(shí)可帶變量參數(shù)或優(yōu)化執(zhí)行;(3)執(zhí)行命令;(4)如果這個(gè)命令使數(shù)據(jù)按表中行的形式返回,則將這些行存儲(chǔ)在易于檢查、操作或更改的緩存中;(5)可使用緩存行的更改內(nèi)容來(lái)更新數(shù)據(jù)源;(6)提供常規(guī)方法檢測(cè)錯(cuò)誤;ADO對(duì)象模型如圖2所示。
(1)在打開連接前使用ConnectionString、ConnectionTimeout和Mode屬性對(duì)連接進(jìn)行配置;
(2)使用DefaultDatabase屬性設(shè)置連接的默認(rèn)數(shù)據(jù)庫(kù);
(3)使用Open方法建立到數(shù)據(jù)源的物理連接,使用Close方法將連接斷開;
(4)使用Execute方法執(zhí)行對(duì)連接的命令,并使用CommandTimeout屬性對(duì)執(zhí)行進(jìn)行配置。?
3.2命令
通過(guò)已建立的連接發(fā)出的“命令(Command)”可以用某種方式來(lái)操作數(shù)據(jù)源。命令可以在數(shù)據(jù)源中添加、刪除或更新數(shù)據(jù),或者在表中以行的格式檢索數(shù)據(jù)。對(duì)象模型用Command對(duì)象來(lái)體現(xiàn)命令概念,Command對(duì)象定義了對(duì)數(shù)據(jù)源執(zhí)行的指定命令。使用Command對(duì)象查詢數(shù)據(jù)庫(kù)并返回Recordset對(duì)象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫(kù)結(jié)構(gòu)??梢允褂肅ommand對(duì)象的集合、方法和屬性進(jìn)行下列等操作:
(1)使用CommandText屬性定義命令(如SQL語(yǔ)句)的可執(zhí)行文本;(2)可使用Execute方法執(zhí)行命令并在適當(dāng)?shù)臅r(shí)候返回Recordset對(duì)象;(3)使用CommandTimeout屬性設(shè)置提供者等待命令執(zhí)行的時(shí)間;(4)通過(guò)設(shè)置ActiveConnection屬性使打開的連接與Command對(duì)象關(guān)聯(lián);(5)將Command對(duì)象傳送給Recordset的Source屬性以便獲取數(shù)據(jù)。
3.3記錄集
命令是在數(shù)據(jù)庫(kù)的表中按信息行返回?cái)?shù)據(jù)的查詢,并將這些行存儲(chǔ)在本地;ADO對(duì)象模型將該存儲(chǔ)體現(xiàn)為“記錄集(Recordset)”對(duì)象。記錄集是在行中檢查和修改數(shù)據(jù)最主要的方法。通過(guò)記錄集對(duì)象可執(zhí)行下列操作:
(1)指定可以檢查的行;(2)移動(dòng)行;(3)指定移動(dòng)行的順序;(4)添加、更改或刪除行;(5)通過(guò)更改行更新數(shù)據(jù)源;(6)管理Recordset的總體狀態(tài)。
使用ADO時(shí),通過(guò)記錄集對(duì)象可對(duì)幾乎所有數(shù)據(jù)進(jìn)行操作。
(2)使用DefaultDatabase屬性設(shè)置連接的默認(rèn)數(shù)據(jù)庫(kù);
(3)使用Open方法建立到數(shù)據(jù)源的物理連接,使用Close方法將連接斷開;
(4)使用Execute方法執(zhí)行對(duì)連接的命令,并使用CommandTimeout屬性對(duì)執(zhí)行進(jìn)行配置。?
3.2命令
通過(guò)已建立的連接發(fā)出的“命令(Command)”可以用某種方式來(lái)操作數(shù)據(jù)源。命令可以在數(shù)據(jù)源中添加、刪除或更新數(shù)據(jù),或者在表中以行的格式檢索數(shù)據(jù)。對(duì)象模型用Command對(duì)象來(lái)體現(xiàn)命令概念,Command對(duì)象定義了對(duì)數(shù)據(jù)源執(zhí)行的指定命令。使用Command對(duì)象查詢數(shù)據(jù)庫(kù)并返回Recordset對(duì)象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫(kù)結(jié)構(gòu)??梢允褂肅ommand對(duì)象的集合、方法和屬性進(jìn)行下列等操作:
(1)使用CommandText屬性定義命令(如SQL語(yǔ)句)的可執(zhí)行文本;(2)可使用Execute方法執(zhí)行命令并在適當(dāng)?shù)臅r(shí)候返回Recordset對(duì)象;(3)使用CommandTimeout屬性設(shè)置提供者等待命令執(zhí)行的時(shí)間;(4)通過(guò)設(shè)置ActiveConnection屬性使打開的連接與Command對(duì)象關(guān)聯(lián);(5)將Command對(duì)象傳送給Recordset的Source屬性以便獲取數(shù)據(jù)。
3.3記錄集
命令是在數(shù)據(jù)庫(kù)的表中按信息行返回?cái)?shù)據(jù)的查詢,并將這些行存儲(chǔ)在本地;ADO對(duì)象模型將該存儲(chǔ)體現(xiàn)為“記錄集(Recordset)”對(duì)象。記錄集是在行中檢查和修改數(shù)據(jù)最主要的方法。通過(guò)記錄集對(duì)象可執(zhí)行下列操作:
(1)指定可以檢查的行;(2)移動(dòng)行;(3)指定移動(dòng)行的順序;(4)添加、更改或刪除行;(5)通過(guò)更改行更新數(shù)據(jù)源;(6)管理Recordset的總體狀態(tài)。
使用ADO時(shí),通過(guò)記錄集對(duì)象可對(duì)幾乎所有數(shù)據(jù)進(jìn)行操作。
創(chuàng)建與數(shù)據(jù)庫(kù)的連接及建立記錄集的框圖程序如圖3所示。圖中在調(diào)用ADODB.Connection的Open方法節(jié)點(diǎn)時(shí),輸入的“ConnectionString”參數(shù)即指定連接的數(shù)據(jù)源名,格式為“DSN=數(shù)據(jù)源名”,可以通過(guò)更改數(shù)據(jù)庫(kù)源名,而實(shí)現(xiàn)與不同的數(shù)據(jù)庫(kù)連接。后面ADODB.Recordset的Open方法節(jié)點(diǎn)在執(zhí)行有效SQL語(yǔ)句后返回記錄集,以便對(duì)數(shù)據(jù)庫(kù)操作。
在返回的記錄集中添加一條記錄的框圖程序如圖4所示。調(diào)用ADODB.Recordset的AddNew方法節(jié)點(diǎn),向記錄集中添加一條記錄,并設(shè)置首字段的值,再調(diào)用Update方法節(jié)點(diǎn)設(shè)置其余字段的值,完成添加記錄后,系統(tǒng)將會(huì)自動(dòng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新。
在返回的記錄集中添加一條記錄的框圖程序如圖4所示。調(diào)用ADODB.Recordset的AddNew方法節(jié)點(diǎn),向記錄集中添加一條記錄,并設(shè)置首字段的值,再調(diào)用Update方法節(jié)點(diǎn)設(shè)置其余字段的值,完成添加記錄后,系統(tǒng)將會(huì)自動(dòng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新。
評(píng)論