基于sql的labview數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第1頁(yè)
基于sql的labview數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第2頁(yè)
基于sql的labview數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第3頁(yè)
基于sql的labview數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于sql的labview數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)

1數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)使用excel進(jìn)行開發(fā)應(yīng)用程序時(shí),由于調(diào)試本身的數(shù)據(jù)庫(kù)訪問(wèn)功能,一般解決方法如下。1)利用NI公司的附加數(shù)據(jù)庫(kù)接口工具包LabVIEWSQLToolkit進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)。2)利用LabVIEW的ActiveX功能,調(diào)用MicrosoftADO控件,利用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。3)利用其他語(yǔ)言如VisualC++編寫DLL程序訪問(wèn)數(shù)據(jù)庫(kù),再利用LabVIEW所帶的DLL接口——調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)CLFN(CallLibraryFunctionNode)訪問(wèn)該程序,這樣可以實(shí)現(xiàn)間接訪問(wèn)數(shù)據(jù)庫(kù)。4)利用免費(fèi)的LabVIEW數(shù)據(jù)庫(kù)訪問(wèn)工具LabSQL。2ado的程序LabSQL的開發(fā)是在LabVIEW中利用ActiveX功能,通過(guò)調(diào)用MicrosoftADO控件,結(jié)合SQL語(yǔ)言,并通過(guò)ODBC接口函數(shù)庫(kù)驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),其結(jié)構(gòu)層次見圖1。MicrosoftADO是微軟最新的數(shù)據(jù)訪問(wèn)技術(shù),通過(guò)編程模型實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。編程模型是訪問(wèn)和更新數(shù)據(jù)源所必需的操作順序,它概括了的全部功能。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所示。這些操作都是對(duì)數(shù)據(jù)庫(kù)最基本的操作,可以分為Connection、Command、Recordset等三類,在應(yīng)用程序開發(fā)過(guò)程中,為實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),這些操作方法以子函數(shù)的形式進(jìn)行封裝,例如經(jīng)過(guò)封裝后的SQLExecute.vi,SQLFetchData.vi等函數(shù)便可直接進(jìn)行調(diào)用,按照輸入的SQL命令可實(shí)現(xiàn)數(shù)據(jù)庫(kù)的不同操作。利用LabSQL訪問(wèn)數(shù)據(jù)庫(kù)的基本步驟是連接數(shù)據(jù)庫(kù)、執(zhí)行操作、斷開數(shù)據(jù)庫(kù)連接等三個(gè)步驟,用戶在執(zhí)行操作階段輸入不同的SQL命令,可實(shí)現(xiàn)不同的數(shù)據(jù)庫(kù)操作,包括查詢?nèi)繑?shù)據(jù)記錄、按條件查詢數(shù)據(jù)、添加記錄、刪除記錄等。3數(shù)據(jù)庫(kù)管理子系統(tǒng)在開發(fā)某自動(dòng)測(cè)試系統(tǒng)過(guò)程中,由于有大量的測(cè)試信息需要存入數(shù)據(jù)庫(kù)記錄,同時(shí)為了滿足方便日后查詢的需要,測(cè)試系統(tǒng)應(yīng)用軟件包含了用于數(shù)據(jù)庫(kù)管理操作的應(yīng)用程序,通過(guò)點(diǎn)擊系統(tǒng)管理用戶界面的“數(shù)據(jù)庫(kù)管理”便可進(jìn)入數(shù)據(jù)庫(kù)管理應(yīng)用程序。在開發(fā)過(guò)程中,選用Access作為數(shù)據(jù)庫(kù),在LabVIEW中使用LabSQL工具包對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。3.1數(shù)據(jù)庫(kù)管理系統(tǒng)測(cè)試平臺(tái)的數(shù)據(jù)庫(kù)名稱為Test.mdb,該數(shù)據(jù)包含兩個(gè)數(shù)據(jù)表項(xiàng),分別是test_condition和test_reslut;這兩個(gè)表是進(jìn)行數(shù)據(jù)庫(kù)操作的基礎(chǔ)。通過(guò)控制面板中的數(shù)據(jù)源(ODBC)設(shè)置工具,對(duì)Test.mdb進(jìn)行數(shù)據(jù)源的注冊(cè)設(shè)置。開發(fā)的數(shù)據(jù)庫(kù)管理用戶界面如圖3所示。該界面分三個(gè)區(qū)域,分別是操作提示區(qū)、操作區(qū)、結(jié)果顯示區(qū)等三個(gè)部分。操作提示區(qū)用于提示用戶如何進(jìn)行相關(guān)的數(shù)據(jù)庫(kù)操作。操作區(qū)用于具體的數(shù)據(jù)庫(kù)操作,用戶可按測(cè)試時(shí)間、被測(cè)電路板名稱、測(cè)試結(jié)果等三個(gè)索引對(duì)測(cè)試結(jié)果數(shù)據(jù)進(jìn)行查詢、打印、刪除等操作。在進(jìn)行該部分程序開發(fā)時(shí),為避免用戶直接輸入SQL查詢語(yǔ)句,在編程上將SQL查詢語(yǔ)句放入后臺(tái)進(jìn)行處理,用戶僅需根據(jù)提示區(qū)的提示,在查詢命令框中輸入簡(jiǎn)單的關(guān)鍵詞即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。3.2dsn端口和生物電子函數(shù)為實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作管理以及數(shù)據(jù)獲取的需要,以下子函數(shù)在數(shù)據(jù)庫(kù)管理應(yīng)用程序得開發(fā)過(guò)程中扮演者重要的角色。1)InsertTable.vi,該子函數(shù)用于將測(cè)試結(jié)果寫入數(shù)據(jù)庫(kù)。該函數(shù)的主要操作對(duì)象是test_result數(shù)據(jù)表,將該子函數(shù)進(jìn)行封裝,見圖4。函數(shù)圖標(biāo)留有若干輸入輸出端口,主要的數(shù)據(jù)連接端口有DSN(databasesourcename,數(shù)據(jù)源名稱)端口、board_name(電路板名稱)端口、f1_value(輸出信號(hào)頻率測(cè)量值)、amp1_value(輸出信號(hào)幅度測(cè)量值)、f1_standard(輸出信號(hào)頻率標(biāo)準(zhǔn)值)、amp1_standard(輸出信號(hào)幅度標(biāo)準(zhǔn)值)、result(測(cè)試結(jié)論)等端口。DSN端口用于打開數(shù)據(jù)庫(kù)中的存儲(chǔ)測(cè)試結(jié)果表項(xiàng);board_name用于將當(dāng)前被測(cè)電路板的名稱存入數(shù)據(jù)庫(kù),便于查詢索引;f1_value和amp1_value為被采集信號(hào)經(jīng)過(guò)分析后的測(cè)量值;f1_standard和amp1_standard來(lái)自測(cè)試條件數(shù)據(jù)表,這兩個(gè)值的獲取也是通過(guò)數(shù)據(jù)庫(kù)操作函數(shù)得到的;result來(lái)自測(cè)試結(jié)果處理子函數(shù),若被測(cè)電路板通過(guò)測(cè)試,則表達(dá)為“合格”,反之為“不合格”。2)_fetchoneelement.vi,該子函數(shù)用于從數(shù)據(jù)庫(kù)中獲取一個(gè)值,主要用于程序開發(fā)時(shí)的參數(shù)獲取,例如獲得電路板X的輸入信號(hào)的頻率值。該子函數(shù)的操作對(duì)象主要是test_condition數(shù)據(jù)表,獲取的值主要用于傳送給信號(hào)源模塊PXI-5412的參數(shù)設(shè)置端。源代碼程序見圖5,封裝后的程序見圖6。DSN端口用于打開數(shù)據(jù)庫(kù)中的測(cè)試條件表項(xiàng);board_name端口作為查詢的行索引,取出與電路板名稱相符的測(cè)試條件數(shù)據(jù);parameter(參數(shù)名)端口的輸入作為查詢的列字段索引;輸出端口output1和output2為類型不同的輸出,分別是數(shù)值型和字符型。例如,為取得電路板X的輸入信號(hào)的頻率值,那么在board_name端口輸入字符串“X”,在parameter端口輸入signal1_f,那么在程序運(yùn)行時(shí),從output1端口,就可從數(shù)據(jù)庫(kù)的測(cè)試條件test_condition表中獲得電路板X輸入信號(hào)的頻率值。3)DB_delete.vi,該子程序用于將查詢結(jié)果從數(shù)據(jù)庫(kù)中進(jìn)行刪除操作。以上幾個(gè)數(shù)據(jù)庫(kù)操作子函數(shù)是數(shù)據(jù)庫(kù)管理應(yīng)用程序開發(fā)時(shí)常用的函數(shù),在開發(fā)過(guò)程中,對(duì)上述的功能子函數(shù)進(jìn)行適當(dāng)?shù)恼{(diào)用或二次開發(fā)封裝可以滿足對(duì)不同數(shù)據(jù)獲取的要求。3.3sql查詢命令的生成在數(shù)據(jù)庫(kù)管理軟件的開發(fā)過(guò)程中,雖然利用了LabSQL工具包,但不可避免地要用到簡(jiǎn)單的SQL查詢命令語(yǔ)句。在開發(fā)的過(guò)程中,常用到的SQL語(yǔ)句有以下幾種。1列名論SELECT<查詢內(nèi)容>FROM<表或視圖>WHERE<條件>ORDERBY<列名>。開發(fā)時(shí)常用到的SQL語(yǔ)句有查詢?nèi)繙y(cè)試結(jié)果記錄語(yǔ)句:SELECT*FROMtest_result查詢指定方式的SQL語(yǔ)句為:SELECT*FROMtest_resultWHERETest_time=‘060920’2轉(zhuǎn)化測(cè)試結(jié)果表,插即出學(xué)習(xí)結(jié)果表,《磺酸酸》,《磺酸鹽系統(tǒng)見表2,5,5.向測(cè)試結(jié)果數(shù)據(jù)表中插入一次測(cè)試的結(jié)果記錄時(shí),SQL語(yǔ)句格式為:INSERTINTO<表名>(<列名1>,……)VALUES(<列值>,……)向測(cè)試結(jié)果表test_result中插入記錄的SQL語(yǔ)句如下:INSERTINTOtest_result(Test_time,bord_name,f1_value,amp1_value,f1_standard,amp1_standard,result)VALUES(<列值>,……)3反復(fù)加裝置的測(cè)試信息DELETEFROM<表名>WHERE<條件>下面是對(duì)查詢結(jié)果進(jìn)行刪除的SQL語(yǔ)句:DELETEFROMtest_resultWHEREboard_name=‘XX’當(dāng)程序執(zhí)行完上述語(yǔ)句后,在rest_result表中,所有關(guān)于電路板XX的測(cè)試信息全部被刪除??梢愿鶕?jù)刪除條件的不同,刪除不同的測(cè)試信息。4對(duì)所使用的技術(shù)的開

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論