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