亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        LabVIEW與數(shù)據(jù)庫實(shí)現(xiàn)動態(tài)鏈接的方法探析

        2014-11-22 02:11:30馮志君張建剛
        機(jī)械工程師 2014年3期
        關(guān)鍵詞:程序數(shù)據(jù)庫信息

        馮志君,張建剛

        (廣西科技大學(xué) 機(jī)械學(xué)院,廣西 柳州 545006)

        0 引言

        隨著LabVIEW 軟件越來越廣泛地應(yīng)用于測控領(lǐng)域,在LabVIEW 程序中采用數(shù)據(jù)庫技術(shù),安全、高效地管理和組織數(shù)據(jù)的需求日益突出。但是現(xiàn)有LabVIEW 版本并不具備數(shù)據(jù)庫訪問功能,采用LabVIEW 軟件編制的虛擬測試系統(tǒng),通常采用手工方法在LabVIEW 與數(shù)據(jù)庫之間創(chuàng)建連接。此方法不僅耗時費(fèi)力,且所建數(shù)據(jù)庫在位置發(fā)生改變后,程序往往不能正常運(yùn)行,即該連接不具備可移植性[1-3]。針對此問題,本文對LabVIEW 與數(shù)據(jù)庫的連接方法進(jìn)行了相關(guān)研究,并給出了重構(gòu)UDL(Universal Data Link)中的路徑信息,采用動態(tài)編輯DSN(Data Source Names),及使用ActiveX 技術(shù)等一系列方法,來實(shí)現(xiàn)其與數(shù)據(jù)庫的動態(tài)鏈接,并以Access 數(shù)據(jù)庫為例,進(jìn)行了相關(guān)說明。

        1 LabVIEW 與數(shù)據(jù)庫的連接

        由于LabVIEW 軟件不具備創(chuàng)建數(shù)據(jù)庫的功能,因此在連接前應(yīng)先借助第三方數(shù)據(jù)庫軟件,如:Access、SQL Server 等,創(chuàng)建一個數(shù)據(jù)庫作為數(shù)據(jù)源,然后再通過對LabVIEW 軟件的正確設(shè)置,即可實(shí)現(xiàn)兩者間的交互[1]。通常有以下兩種方法可以實(shí)現(xiàn)LabVIEW 與數(shù)據(jù)庫的連接:

        1)通過UDL方式連接數(shù)據(jù)庫。通過UDL方式使Labview軟件與數(shù)據(jù)庫連接,其實(shí)現(xiàn)方式如下:在Labview 程序界面,首先選擇“工具→Create Data Link...”,在彈出的“數(shù)據(jù)連接屬性”對話框中選擇“Microsoft Jet 4.0 OLEDB Provider”選項,并單擊“下一步”按鈕,在打開的“連接”選項卡界面,“選擇或輸入數(shù)據(jù)庫名稱”一欄中選擇數(shù)據(jù)庫文件,單擊“確定”按鈕,通過彈出的“Save Data Link as...”命名并保存文件,生成連接文件,完成與數(shù)據(jù)庫的連接功能。如:命名為“test”的數(shù)據(jù)庫連接信息文件為“test.udl”。

        2)通過DSN 方式連接數(shù)據(jù)庫。首先,在Windows 控制面板下打開“性能與維護(hù)→管理工具→數(shù)據(jù)源(ODBC)”頁面,在彈出的“ODBC 數(shù)據(jù)源管理工具”對話框中選擇“系統(tǒng)DSN”或“用戶DSN”選項卡(系統(tǒng)DSN 選項卡中的數(shù)據(jù)源對該操作系統(tǒng)下的所有用戶開放;用戶DSN 選項卡中的數(shù)據(jù)源只有本用戶才可訪問,且只能用于本機(jī)器上),點(diǎn)擊“添加”按鈕,在彈出的對話框中選擇Access 數(shù)據(jù)庫驅(qū)動源“Microsoft Access Driver(*.mdb)”或“Drive to Microsoft Access(*.mdb)”選項,點(diǎn)擊“完成”,在彈出的“ODBC Microsoft Access 安裝”對話框中填入數(shù)據(jù)庫名稱,如:“test”,并點(diǎn)擊“選擇”按鈕,瀏覽選擇數(shù)據(jù)庫所在路徑,如:“D: est.mdb”,點(diǎn)擊“確定”完成連接。如需進(jìn)行創(chuàng)建密碼等高級操作,可在完成前單擊“高級”選項卡,設(shè)置各參數(shù)。DSN 表明了數(shù)據(jù)源或數(shù)據(jù)庫名稱,完成上述設(shè)置后,在LabVIEW 中可以通過DSN 調(diào)用ODBC API 函數(shù)連接到相應(yīng)的數(shù)據(jù)庫。

        2 動態(tài)鏈接的實(shí)現(xiàn)

        通過上述方法創(chuàng)建的連接,在使用時無需編程,只需人工選擇數(shù)據(jù)源路徑以及相應(yīng)的數(shù)據(jù)庫驅(qū)動即可對所連接的數(shù)據(jù)庫進(jìn)行簡單操作[3]。但如果數(shù)據(jù)庫路徑或名稱發(fā)生改變,連接就會失效,無法實(shí)現(xiàn)Labview 與數(shù)據(jù)庫的動態(tài)鏈接。但在實(shí)際生產(chǎn)應(yīng)用當(dāng)中,數(shù)據(jù)庫的位置或名稱有時會由于需要而產(chǎn)生變化,筆者根據(jù)使用中的經(jīng)驗,給出了幾種實(shí)現(xiàn)動態(tài)鏈接的方法,以供讀者參考。

        2.1 重構(gòu)UDL 中的路徑信息[4]

        LabVIEW 采用上述UDL 方式與數(shù)據(jù)庫連接,所生成的Microsoft 數(shù)據(jù)鏈接信息保存在“*.udl”文檔中,其內(nèi)容如下:

        [oledb];Everything after this line is an OLEDB initstring;

        Provider=Microsoft.Jet.OLEDB.4.0;

        DataSource=…*.mdb;PersistSecurityInfo=False

        其中“Provider”與“DataSource”的值,分別指明了數(shù)據(jù)庫驅(qū)動程序與數(shù)據(jù)庫在硬盤中的存放位置。由于數(shù)據(jù)庫發(fā)生變化時,連接文檔中的“DataSource”項的值并未隨之改變?yōu)樾聰?shù)據(jù)庫的路徑,從而導(dǎo)致LabVIEW 與新數(shù)據(jù)庫的連接失敗。故可通過LabVIEW 軟件中的“拆分路徑”與“創(chuàng)建路徑”控件對連接信息中的DataSource 值拆分重構(gòu),并在“新數(shù)據(jù)庫名稱”控件中輸入新數(shù)據(jù)庫全稱,來達(dá)到動態(tài)連接數(shù)據(jù)庫的功能。

        圖1 給出了利用重構(gòu)數(shù)據(jù)庫路徑信息實(shí)現(xiàn)數(shù)據(jù)庫動態(tài)鏈接的程序,及封裝后命名為“GET DB PATH”的子VI。在程序開發(fā)過程中,考慮到采用LabVIEW 軟件編制的程序在開發(fā)環(huán)境與應(yīng)用環(huán)境中存在的差異,為了使本程序在兩種環(huán)境中均可運(yùn)行,程序中通過引入了一個“App.kind”屬性節(jié)點(diǎn)控制的“條件結(jié)構(gòu)”,實(shí)現(xiàn)了對“本應(yīng)用程序”自動判斷運(yùn)行環(huán)境的功能。

        圖1 重構(gòu)路徑信息實(shí)現(xiàn)可移植性的程序及子VI

        值得注意的是,采用此種方法程序設(shè)計時,必須將實(shí)現(xiàn)編制后的程序封裝成一個子VI,并將其與所需連接的數(shù)據(jù)庫存放在同一文件夾內(nèi),才能實(shí)現(xiàn)動態(tài)鏈接功能。

        2.2 利用注冊表動態(tài)編輯DSN[5]

        通過ODBC 管理器所創(chuàng)建的DSN 數(shù)據(jù)庫的連接信息都保存在注冊表中,其中“系統(tǒng)DSN”信息保存在主鍵HKEY_LOCAL_MACHINESOFTWAREODBCODBC.INI下;“用戶DSN”信息保存在主鍵HKEY_CURRENT_USERSoftwareODBCODBC.INI 下。LabVIEW 與數(shù)據(jù)庫的鏈接信息就保存在主鍵下以數(shù)據(jù)庫名命名的項中。因此,在LabVIEW 中通過動態(tài)修改、編輯注冊表中的DSN 有效信息,可實(shí)現(xiàn)LabVIEW 程序與數(shù)據(jù)庫間的動態(tài)鏈接。其實(shí)現(xiàn)程序如圖2 所示。

        圖2 利用注冊表動態(tài)編輯DSN 程序

        其中“DBQ”的值指明了連接的數(shù)據(jù)庫路徑;“Driver”的值記錄了數(shù)據(jù)庫的驅(qū)動程序。在動態(tài)編輯DSN 信息時,“Driver”項一般使用默認(rèn)值而不需改動,所需修改的只有“DBQ”項的值,將其賦值為新數(shù)據(jù)庫的路徑即可。

        2.3 利用ActiveX 控件動態(tài)創(chuàng)建DSN[6]

        在LabVIEW 中使用ActiveX 控件動態(tài)創(chuàng)建DSN 的程序流程如圖3 所示。

        圖3 LabVIEW 中使用ActiveX 控件的程序流程

        其具體實(shí)現(xiàn)步驟如下:

        1)打開自動化參數(shù)號。在LabVIEW 函數(shù)面板上的“互鏈接口→Active X”選項下,選擇“打開自動化”函數(shù)控件,在控件左上側(cè)的“自動化引用句柄”接線端處創(chuàng)建“ODBC Tool._Dsn”類型常量(右鍵單擊“打開自動化”控件,單擊“選擇Active X 類”,瀏覽添加“ODBC Driver &Data Source Name Functions Version 2.0”類型庫,并選擇“Dsn(ODBC Tool.Dsn)”類。

        2)設(shè)置/獲取屬性和調(diào)用方法。將“打開自動化”函數(shù)控件右上側(cè)的“自動化引用句柄”與“調(diào)用節(jié)點(diǎn)”函數(shù)控件的“引用”端口相連,并點(diǎn)擊“調(diào)用節(jié)點(diǎn)”控件,創(chuàng)建“ODBC Tool._DSN”類的“Creat DSN”方法節(jié)點(diǎn),通過“Creat DSN”節(jié)點(diǎn),動態(tài)創(chuàng)建DSN。其中,“Creat DSN”方法節(jié)點(diǎn)參數(shù)設(shè)置如圖4 所示。

        圖4 使用ActiveX 動態(tài)創(chuàng)建DSN

        2.4 利用ActiveX 控件動態(tài)創(chuàng)建ADO[6]

        采用UDL 方式連接數(shù)據(jù)庫是基于Microsoft 提供的ADO 技術(shù)進(jìn)行的,故可通過LabVIEW 中的ActiveX 動態(tài)創(chuàng)建ADO 連接數(shù)據(jù)庫,其操作過程與上述動態(tài)創(chuàng)建DSN相似,其不同之處在于:

        1)打開自動化參數(shù)號時對類型庫的選擇。采用ActiveX 自動化技術(shù)動態(tài)創(chuàng)建ADO 時,選擇的ActiveX類是“Microsoft ActiveX Data Objects 2.7 Library Version 2.7”類型庫中的“Connection(ADOB.Connection.2.8)”類,在控件左上側(cè)的“自動化引用句柄”接線端處創(chuàng)建的為“ADODB._Connection”類型常量。

        2)設(shè)置/獲取屬性和調(diào)用方法。動態(tài)創(chuàng)建ADO 是在程序框圖功能模板中選擇的“互鏈接口>>Active X 子模板>>調(diào)用屬性節(jié)點(diǎn)”控件,并將其“引用”接口與“打開自動化”圖標(biāo)輸出端“自動化引用句柄”接口相連,選擇其中的“Open”選項,以打開Connection 對象,如圖5。其中“Connection String”是連接到數(shù)據(jù)源的字符串,包含驅(qū)動程序和數(shù)據(jù)庫路徑兩部分,驅(qū)動程序為“Microsoft.Jet.OLEDB.4.0”,數(shù)據(jù)庫路徑則是通過前面板上的“路徑”選擇控件選擇所要連接的數(shù)據(jù)庫設(shè)置完成;“User ID”和“Pass Word”是連接到數(shù)據(jù)源的用戶名和密碼,正確設(shè)置這些參數(shù)后便可實(shí)現(xiàn)與數(shù)據(jù)庫的動態(tài)鏈接。

        圖5 使用ActiveX 動態(tài)創(chuàng)建ADO

        3 結(jié)論

        通過UDL 或DSN 方式均可實(shí)現(xiàn)LabVIEW 軟件與數(shù)據(jù)庫的連接,但數(shù)據(jù)庫路徑或名稱發(fā)生改變時,這種連接就會失效。通過重構(gòu)UDL 中的文件存放路徑信息,或利用注冊表動態(tài)編輯DSN,或使用ActiveX 自動化技術(shù)動態(tài)創(chuàng)建DSN 或動態(tài)創(chuàng)建ADO,切實(shí)解決LabVIEW 程序與數(shù)據(jù)庫的動態(tài)鏈接問題,以充分利用數(shù)據(jù)庫的優(yōu)勢,方便高效地管理測試數(shù)據(jù),提高測試系統(tǒng)的智能化程度。

        [1]吉順祥,劉旺鎖,宋曉婷.基于LabVIEW 的數(shù)據(jù)庫訪問技術(shù)[J].航海工程,2007,36(3):125-128.

        [2]姚桂艷,常英麗.LabVIEW 與數(shù)據(jù)庫的鏈接方法[J].現(xiàn)代電子技術(shù),2007,30(16):16-17.

        [3]林靜,林振宇,鄭福仁.LabVIEW 虛擬程序設(shè)計從入門到精通[M].北京:中國郵電出版社,2010.

        [4]雷振山,魏麗,趙晨光,等.LabVIEW 高級編程與虛擬儀器工程應(yīng)用[M].北京中國鐵道出版社,2009.

        [5]聶波波,萎樂華.LabVlEW 中動態(tài)配置ODBC 數(shù)據(jù)源的實(shí)現(xiàn)[J].科技資訊,2007,25(3):6-7.

        [6]高國華,張永忠.在LabVIEW 中利用ActiveX 技術(shù)訪問數(shù)據(jù)庫[J].國外電子測量技術(shù),2004,2(23):15-16,22.

        猜你喜歡
        程序數(shù)據(jù)庫信息
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        英國與歐盟正式啟動“離婚”程序程序
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        国产成人精品免费视频大全软件| 久久久久一| 91国产自拍视频在线| 久久综合精品国产丝袜长腿| 无码gogo大胆啪啪艺术| 亚洲精品国偷自产在线99正片| 久久精品国产亚洲一区二区| 欧美 国产 日产 韩国 在线 | av无码av天天av天天爽| 八戒网站免费观看视频| 国产2021精品视频免费播放| 国产亚洲美女精品久久| 亚洲精品综合一区二区| 国产精品会所一区二区三区| 48沈阳熟女高潮嗷嗷叫| 久久亚洲道色宗和久久| 国产精品成人久久一区二区| 亚洲国产精品一区二区久久恐怖片 | 国产亚洲精品a片久久久| 日本巨大的奶头在线观看| 国产强伦姧在线观看| 狼人狠狠干首页综合网| 91九色免费视频网站| 人人爽人人爱| 精品国产福利一区二区在线| 浪荡少妇一区二区三区| 日本在线一区二区免费| 自拍偷自拍亚洲一区二区| 中文亚洲av片在线观看| 超91精品手机国产在线| 亚洲精品女同在线观看| 中文字字幕在线中文乱码解| 久久精品国产亚洲av电影网| 美女啪啪国产| 国产一区二区在线观看av| 国产一区二区三区久久精品| 国产成人麻豆精品午夜福利在线| 亚洲无码中文字幕日韩无码| 亚洲天堂av一区二区| 精品人妻伦九区久久aaa片| 久久久久久亚洲AV成人无码国产|