郝云虎
(中國(guó)人民解放軍第四三二八工廠,山西 長(zhǎng)治 046011)
基于LabVIEW的局域網(wǎng)遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)
郝云虎
(中國(guó)人民解放軍第四三二八工廠,山西 長(zhǎng)治 046011)
介紹了用LabVIEW平臺(tái)開(kāi)發(fā)的相關(guān)軟件數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)技術(shù),通過(guò)LabSQL工具利用SQL數(shù)據(jù)查詢語(yǔ)言編程對(duì)局域網(wǎng)內(nèi)服務(wù)器上的數(shù)據(jù)庫(kù)進(jìn)行輸入與輸出操作,LabSQL數(shù)據(jù)庫(kù)工具可以有效地完成與數(shù)據(jù)庫(kù)的互聯(lián)及相關(guān)數(shù)據(jù)的更新,編程高效、開(kāi)發(fā)速度快、周期短,可實(shí)現(xiàn)局域網(wǎng)內(nèi)各節(jié)點(diǎn)數(shù)據(jù)的上傳與下載等工作。
局域網(wǎng);遠(yuǎn)程數(shù)據(jù)庫(kù);LabVIEW;LabSQL
現(xiàn)代生產(chǎn)與生活中會(huì)產(chǎn)生各種各樣的數(shù)據(jù)信息,我們需要有效的操作平臺(tái),利用相關(guān)數(shù)據(jù)庫(kù)存儲(chǔ)與訪問(wèn)技術(shù),再加以分析就可以洞悉數(shù)據(jù)間的聯(lián)系,有效幫助人們對(duì)數(shù)據(jù)信息進(jìn)行管理與應(yīng)用,這一流程具有總結(jié)數(shù)據(jù)特點(diǎn)、數(shù)據(jù)趨勢(shì)分析功能等優(yōu)勢(shì)。
LabVIEW是一種基于C語(yǔ)言內(nèi)核的圖形軟件開(kāi)發(fā)環(huán)境,俗稱G編程語(yǔ)言,擁有編程環(huán)境的標(biāo)準(zhǔn)功能,比如選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和事件處理以及內(nèi)置編譯器等編程要素,同時(shí),它本身也具有與本地及遠(yuǎn)程數(shù)據(jù)庫(kù)進(jìn)行通信與數(shù)據(jù)傳輸?shù)墓δ?。用LabVIEW開(kāi)發(fā)相關(guān)軟件在局域網(wǎng)中實(shí)現(xiàn)收集數(shù)據(jù)、組織數(shù)據(jù)、分析數(shù)據(jù)和提供數(shù)據(jù)等功能時(shí),就會(huì)涉及到遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用。
數(shù)據(jù)庫(kù)訪問(wèn)方式有以下6種:①使用官方SQL Toolkit工具包,此類工具包能夠連接大多數(shù)數(shù)據(jù)庫(kù),可對(duì)常用的數(shù)據(jù)庫(kù)進(jìn)行操作。②利用C++、VC++等語(yǔ)言編寫(xiě)鏈接庫(kù),再通過(guò)LabVIEW接口VI訪問(wèn)數(shù)據(jù)庫(kù)。③通過(guò)中間文件的橋梁作用,將數(shù)據(jù)保存在相關(guān)過(guò)程文件中,然后再用專門的數(shù)據(jù)庫(kù)導(dǎo)入工具導(dǎo)入到目標(biāo)數(shù)據(jù)中。④通過(guò)LabVIEW平臺(tái)的ActiveX接口,調(diào)用MicrosoftADO工具,SQL數(shù)據(jù)語(yǔ)言編程訪問(wèn)數(shù)據(jù)庫(kù)。此工具還具有訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)的功能,可以實(shí)現(xiàn)客戶端與服務(wù)器之間的數(shù)據(jù)操作。⑤使用Web Service技術(shù),這種方式不直接通過(guò)LabVIEW程序訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù),而是在Web Service中訪問(wèn)數(shù)據(jù)庫(kù),然后LabVIEW通過(guò)Internet與Web Service進(jìn)行交互訪問(wèn)數(shù)據(jù)庫(kù)。⑥通過(guò)LabVIEW平臺(tái)開(kāi)發(fā)的第三方數(shù)據(jù)庫(kù)工具包LabSQL實(shí)現(xiàn)客戶端與數(shù)據(jù)庫(kù)的互聯(lián)互通。
綜上所述,①中的工具包價(jià)格昂貴;②采用的方法工作周期長(zhǎng),且開(kāi)發(fā)效率低下;③需要數(shù)據(jù)庫(kù)單獨(dú)操作,不可??;④中如開(kāi)發(fā)者對(duì)底層ADO控件與SQL語(yǔ)言的理解不夠深,掌握的編程方法不夠多,難以實(shí)現(xiàn)開(kāi)發(fā);⑤中所提供的方法的實(shí)時(shí)性難以達(dá)到要求,用JAVA再去開(kāi)發(fā)增加了工作量;⑥中闡述的工具包對(duì)所有用戶開(kāi)放,調(diào)用方法容易實(shí)現(xiàn),邏輯性較強(qiáng),開(kāi)發(fā)效率較高,實(shí)時(shí)性較好。
LabSQL是LabVIEW平臺(tái)開(kāi)發(fā)的數(shù)據(jù)庫(kù)工具包,其源代碼開(kāi)放、使用免費(fèi)、可多種數(shù)據(jù)庫(kù)間使用,還具有跨平臺(tái)的使用優(yōu)勢(shì)。所有ODBC數(shù)據(jù)庫(kù)都可以使用該工具包,常用的Access、SQL Server、Oracle等平臺(tái)都可使用。它是將復(fù)雜的ADO底層操作與SQL操作封裝成一系列調(diào)用子VI,各種操作子VI打包而成?;旧峡梢栽L問(wèn)所有常用的數(shù)據(jù)庫(kù),經(jīng)過(guò)邏輯編程對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、更新等多種操作,可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
LabSQL功能分4類:①Command??赏瓿梢幌盗谢続DO操作,比如對(duì)參數(shù)的讀寫(xiě)操作;②Connection。主要實(shí)現(xiàn)LabVIEW與數(shù)據(jù)庫(kù)之間的連接;③Recordset。對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行各種操作,比如增加、刪除、更改記錄等;④Top Level,這是LabSQL的高級(jí)應(yīng)用,是對(duì)前三種功能的封裝使用,比如直接執(zhí)行SQL命令(VI SQL Execute)。
LabVIEW利用LabSQL訪問(wèn)和操作數(shù)據(jù)庫(kù)的具體步驟包括以下4步(如圖1所示):①連接數(shù)據(jù)庫(kù),用ADO Connection Create建立Connection對(duì)象,用ADO Connection Open建立數(shù)據(jù)庫(kù)連接,具體由Connection String表述的字符串指定。②SQL語(yǔ)句的執(zhí)行使用,用ADO recordset create建立recordset對(duì)象,用ADO recordset open打開(kāi)操作對(duì)象,再用SQL命令完成對(duì)數(shù)據(jù)庫(kù)表中記錄數(shù)據(jù)的獲取。③數(shù)據(jù)庫(kù)的操作。具體的操作有查詢、添加、刪除、修改等,都是通過(guò)SQL語(yǔ)言編程實(shí)現(xiàn)的。編輯好數(shù)據(jù)操作命令程序后,將連接字符串與子VI SQL Execute操作字符串連接端相連,如圖2所示。④斷開(kāi)連接,通過(guò)ADO recordset Close與ADO connection close關(guān)閉連接。
2.2.1 遠(yuǎn)程數(shù)據(jù)庫(kù)的創(chuàng)建
局域網(wǎng)中的節(jié)點(diǎn)操作系統(tǒng)安裝Windows普通用戶版本,服務(wù)器安裝Windows 2000 Server,兩種環(huán)境均可運(yùn)用數(shù)據(jù)庫(kù)SQL Server 2008制作專用的數(shù)據(jù)庫(kù),并設(shè)置用戶名與密碼。
2.2.2 LabSQL與數(shù)據(jù)庫(kù)的連接
數(shù)據(jù)庫(kù)的連接通過(guò)LabSQL工具包子VI ADO Connection Create與ADO Connection Open的聯(lián)合使用來(lái)實(shí)現(xiàn),Connection String字符串來(lái)表述其中包含數(shù)據(jù)庫(kù)名稱。局域網(wǎng)內(nèi)服務(wù)器遠(yuǎn)程數(shù)據(jù)庫(kù)連接程序框圖如圖3所示。
圖1 LabSQL調(diào)用操作
圖2 數(shù)據(jù)查詢語(yǔ)言字段連接
圖3 遠(yuǎn)程數(shù)據(jù)庫(kù)連接字符串
SQL代碼是專用的數(shù)據(jù)庫(kù)操作和程序編輯語(yǔ)言,實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)和讀取,能夠查詢、更新、管理各種數(shù)據(jù)庫(kù)系統(tǒng),具有極高的靈活性與強(qiáng)大的功能。
SQL語(yǔ)句包含6個(gè)部分:①數(shù)據(jù)查詢語(yǔ)言。用以從數(shù)據(jù)庫(kù)表中獲取數(shù)據(jù),確定數(shù)據(jù)的形式。其中,SELECT是使用最多的動(dòng)詞,其他還包括WHERE、ORDER BY、GROUP BY等語(yǔ)句。②數(shù)據(jù)操作語(yǔ)言。包括動(dòng)詞INSERT、UPDATE、DELETE等動(dòng)作性語(yǔ)言,所代表的功能是添加、修改和刪除數(shù)據(jù)庫(kù)表中的記錄數(shù)據(jù)。③事物處理語(yǔ)言。對(duì)數(shù)據(jù)庫(kù)表中的所有行及時(shí)更新。④數(shù)據(jù)控制語(yǔ)言。確定單個(gè)用戶或用戶組對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)。⑤數(shù)據(jù)定義語(yǔ)言。在數(shù)據(jù)庫(kù)中創(chuàng)建新表或刪除表,并為表加入索引等。⑥指針控制語(yǔ)言。它的語(yǔ)句主要用于對(duì)一個(gè)或多個(gè)表單獨(dú)行的操作。
利用LabVIEW開(kāi)發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)局域網(wǎng)內(nèi)服務(wù)器上指定的數(shù)據(jù)庫(kù)進(jìn)行打開(kāi)、數(shù)據(jù)庫(kù)表的查詢、添加和刪除等動(dòng)作,然后安全關(guān)閉數(shù)據(jù)庫(kù)。LabSQL工具可以幫助用戶快速實(shí)現(xiàn)本地遠(yuǎn)程數(shù)據(jù)庫(kù)與LabVIEW客戶端的連接。針對(duì)生產(chǎn)實(shí)施數(shù)據(jù)的存儲(chǔ)和分析管理,都能通過(guò)LabVIEW平臺(tái)及LabSQL工具聯(lián)合開(kāi)發(fā)的用于客戶端的相關(guān)數(shù)據(jù)庫(kù)管理軟件來(lái)實(shí)現(xiàn)互聯(lián)互通及上傳下載操作,采用這種方法既提高了編程效率,又加快了開(kāi)發(fā)進(jìn)度,還為工作提供了便利,同時(shí),為遠(yuǎn)程電子測(cè)試系統(tǒng)的開(kāi)發(fā)提供了技術(shù)基礎(chǔ)。
[1]熊靜,張良,任鵬.基于labVIEW SQLToolkit的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)研究[J].科技視界,2015(25).
[2]唐亞鵬.基于labVIEW的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)教學(xué)平臺(tái)的研究[D].西安:西安科技大學(xué),2011.
[3]張桐,陳國(guó)順,王正林.精通LabVIEW程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[4]陳碩章,劉海斌,王春暉,等.基于labVIEW和云數(shù)據(jù)庫(kù)存儲(chǔ)的遠(yuǎn)程測(cè)試系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2016(06).
TP311
A
10.15913/j.cnki.kjycx.2018.02.083
2095-6835(2018)02-0083-02
郝云虎(1981—),男,山西長(zhǎng)治人,工程師,2009年畢業(yè)于中北大學(xué),碩士研究生,信號(hào)與信息處理專業(yè),主要從事測(cè)控軟件技術(shù)、數(shù)據(jù)管理軟件開(kāi)發(fā)等工作。
張思楠〕