技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > Labview中遠程數(shù)據(jù)庫訪問技術(shù)

Labview中遠程數(shù)據(jù)庫訪問技術(shù)

時間:2008-08-25 14:47:00來源:ronggang

導(dǎo)語:?介紹了在Labview中應(yīng)用ADO技術(shù)訪問本地和遠程數(shù)據(jù)庫的方案。對在局域網(wǎng)中以網(wǎng)絡(luò)共享方式訪問遠程Access數(shù)據(jù)庫進行了詳細(xì)介紹,最后給出了應(yīng)用該方法開發(fā)的一個實例
摘 要:介紹了在Labview中應(yīng)用ADO技術(shù)訪問本地和遠程數(shù)據(jù)庫的方案。對在局域網(wǎng)中以網(wǎng)絡(luò)共享方式訪問遠程Access數(shù)據(jù)庫進行了詳細(xì)介紹,最后給出了應(yīng)用該方法開發(fā)的一個實例。 關(guān)鍵詞:Labview ADO 遠程數(shù)據(jù)庫 引言   Labview 是美國NI公司開發(fā)的一種圖形化編程語言,其主要用于數(shù)據(jù)采集、儀器控制、過程監(jiān)控等領(lǐng)域。Labview具有豐富的采集與分析函數(shù)庫,在Labview環(huán)境下可以方便快捷地開發(fā)監(jiān)控系統(tǒng)軟件?,F(xiàn)代監(jiān)控系統(tǒng)一般構(gòu)建于局域網(wǎng)內(nèi),且監(jiān)控系統(tǒng)自身也是企業(yè)生產(chǎn)管理系統(tǒng)的一個子系統(tǒng),因此不可避免地要訪問本地或遠程數(shù)據(jù)庫。Labview開發(fā)版中并沒有提供直接與通用數(shù)據(jù)庫接口的工具,但可以通過以下方法解決:購買NI公司開發(fā)的附加軟件工具包;利用其它語言如VC++編寫DLL訪問數(shù)據(jù)庫;利用ADO控件訪問數(shù)據(jù)庫。[1]Labview支持Activex控件,與其它方法相比基于ADO技術(shù)構(gòu)建本地或遠程數(shù)據(jù)庫訪問接口不失為一種簡單而又經(jīng)濟的方法。 1 ADO技術(shù)簡介   ADO(Activex Data Objects)是Microsot為OLE DB設(shè)計的應(yīng)用層接口,它為一致的數(shù)據(jù)訪問接口提供了良好的擴展性而不局限于單一的數(shù)據(jù)源。ADO接口編程模型中包括連接(connection)、命令(command)、參數(shù)(parameter)、記錄集(recordset)、字段(field)、錯誤(error)、屬性(property)、集合(collection)、事件(event)等元素。其中connection、command、recordset是三個主體對象,parameters、fields、errors、properties、是四個集合對象。ADO的一般操作方式為:1 連接到數(shù)據(jù)源;2 指定訪問數(shù)據(jù)源的命令;3 執(zhí)行命令;4 將命令執(zhí)行后產(chǎn)生的結(jié)果保存在緩存中;5 更新數(shù)據(jù)源。ADO接口繼承了OLE DB的高速性,可以高速訪問本地或遠程的數(shù)據(jù)源。 2在Labview 中使用ADO接口   在Labview 中使用ADO接口訪問數(shù)據(jù)庫一般包括以下幾個步驟:建立ADO控件;連接到數(shù)據(jù)源;生成SQL命令;執(zhí)行命令;關(guān)閉連接。具體步驟如圖1 所示。   2.1建立ADO控件   在前面板控件模板中選擇Activex子模板單擊Automation Refnum項,右鍵單擊Select Activex Class的Browse從類型庫中選擇Microsoft Activex Data Objects 2.7 library Version 2.7,之后可以向框圖程序中加入connection、command、recordset等對象。   2.2連接到數(shù)據(jù)源   首先在Diagram中單擊鼠標(biāo)右鍵,從Function模板選擇communication子模板,從中選擇Activex項的Automation Open 與ADODB_Connection相連即可打開連接。接著同樣從communication子模板的Activex項中選擇Invoke node (方法節(jié)點)并與Automation Open 相連,在其上單擊右鍵選擇methods項的Open方法即出現(xiàn)圖1中所示的節(jié)點。其中“Open”表示該節(jié)點為打開“連接對象”,“ConnectionString”是連接到數(shù)據(jù)源的字符串, “UserID”和“Password”是連接到數(shù)據(jù)源的用戶名和密碼,左側(cè)小黑三角表示寫入,可以采用字符串控件或字符串常量為其賦值。 [align=center] 圖1 Labview 中訪問數(shù)據(jù)庫[/align]   2.3生成SQL命令、執(zhí)行命令   采用與建立“打開連接”方法相同的步驟建立執(zhí)行節(jié)點,如圖1中所示:其中“Execute”右端的小三角表示讀出,“CommandText”表示需要執(zhí)行的SQL命令文本,該命令文本可由字符串控件或字符串常量賦值。如果需要執(zhí)行帶參數(shù)的命令,則可以采用Labview提供的“格式化字符串生成子VI”(format into string)來定制生成所需要的SQL命令文本。例如可以使用“Create”命令創(chuàng)建表,用“Drop”命令刪除表,用“Insert”命令向表中插入數(shù)據(jù),用“Select”命令進行查詢并返回操作結(jié)果等(具體的操作命令格式可以參考相關(guān)的SQL語言手冊)。RecordsAffected返回一個長整型數(shù)值表示命令執(zhí)行后受影響的記錄集的數(shù)目。若要對執(zhí)行后的記錄進行顯示或讀取字段值則需要建立“Recordset”對象,并與“Execute”相連然后再進行相關(guān)的操作。   2.4關(guān)閉連接   對數(shù)據(jù)庫訪問操作完畢后要及時關(guān)閉連接對象以釋放內(nèi)存和所用的系統(tǒng)資源。與建立連接對象的“Open”方法和“Execute”方法類似,先建立“Invoke Node ”選擇“Close”方法關(guān)閉連接,從“Function ”模板上單擊“Communication”子模板選擇“Activex”中的“Automation Close”項并連線。圖1中使用了一個順序結(jié)構(gòu),目的是為了使訪問數(shù)據(jù)庫按一定的順序運行,不致發(fā)生命令尚未執(zhí)行完畢而關(guān)閉連接的錯誤。 3 訪問遠程數(shù)據(jù)庫   在Labview中訪問遠程數(shù)據(jù)庫的途徑有以下幾種:(1)采用NI公司開發(fā)的數(shù)據(jù)庫訪問軟件包實現(xiàn)對本地或遠程數(shù)據(jù)庫訪問,該軟件包需單獨購買。;(2)基于RDS技術(shù)構(gòu)建客戶端/服務(wù)器的遠程數(shù)據(jù)庫訪問模式,該方案要求系統(tǒng)有數(shù)據(jù)庫服務(wù)器如SQL Server 等,同時也要求對ADO RDS技術(shù)有深入的了解;(3)通過Web控件訪問數(shù)據(jù)庫訪問頁模式。這種方案以網(wǎng)頁瀏覽的方式交互的訪問數(shù)據(jù)庫訪問頁,對于監(jiān)測系統(tǒng)而言其實時性難以滿足,同時也需要借助其它語言如VBscript或JavaScript等。如需要訪問SQL Server則在連接字符串中設(shè)定相應(yīng)的數(shù)據(jù)源以及遠程計算機名和所要訪問的數(shù)據(jù)庫名即可實現(xiàn)??紤]到目前監(jiān)控系統(tǒng)大多處于局域網(wǎng)內(nèi)且系統(tǒng)要求實時、高速地訪問數(shù)據(jù)庫,在Labview中以訪問共享文件或網(wǎng)絡(luò)驅(qū)動器中的遠程數(shù)據(jù)庫的方式實現(xiàn)遠程訪問因其簡單、經(jīng)濟而具有較高的實際意義。在局域網(wǎng)內(nèi)以共享文件方式訪問遠程數(shù)據(jù)庫的具體作法是在遠程計算機中將數(shù)據(jù)庫所在的文件夾或驅(qū)動器設(shè)為共享,在本地計算機應(yīng)用程序中對遠程計算機中的數(shù)據(jù)庫文件進行讀寫、查詢等操作。所有的操作均在本地計算機中進行,遠程計算機實際上只提供文件服務(wù),因此要求本地機處理器有較強的能力。[2]   3.1本地連接字符串設(shè)定   訪問本地數(shù)據(jù)庫時根據(jù)是否提供ODBC支持可以分為兩種情況:(1)通過ODBC DSN 連接;首先要在控制面板的“ODBC數(shù)據(jù)源”中設(shè)定數(shù)據(jù)源名稱并指定要訪問的數(shù)據(jù)庫。然后將“DSN=數(shù)據(jù)源名稱”寫入“ConnectionString”。通過ODBC DSN 連接必須預(yù)先在控制面板中進行設(shè)定,而且應(yīng)用程序只能訪問特定的數(shù)據(jù)源,因此對程序移植和使用有一定影響。(2)無ODBC DSN 連接;以連接到Access 數(shù)據(jù)庫為例,向“ConnectionString”中寫入以下字符串“Driver={Microsoft Access Driver(*.mdb)};Dbq=c:\somepath\mydb.mdb;Uid=admin;Pwd=”,其中“Driver”指定數(shù)據(jù)庫驅(qū)動程序,“Dbq”指定要訪問的數(shù)據(jù)庫的路徑;“Uid”和“Pwd”指定訪問數(shù)據(jù)庫時的用戶名和密碼。無ODBC DSN連接可以在程序中根據(jù)需要隨時指定數(shù)據(jù)源以及所需使用的驅(qū)動程序無需在控制面板中手動設(shè)置,這種方式便于程序移植和使用。 [align=center] 圖2向遠程數(shù)據(jù)庫寫入數(shù)據(jù)實例[/align]   3.2遠程連接字符串設(shè)定   訪問遠程數(shù)據(jù)庫步驟與訪問本地數(shù)據(jù)庫基本類似,差別之處在于數(shù)據(jù)源的設(shè)定有所不同。在網(wǎng)絡(luò)共享上訪問Access 數(shù)據(jù)庫時要在“ConnectionString”中指定數(shù)據(jù)源提供者為Microsoft Jet OLEDB Provider,應(yīng)向“ConnectionString”中寫入以下字符串“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\mysever\myshare\mypath\mydb.mdb”其中“Provider”指定數(shù)據(jù)源提供者,“Data Source”指定數(shù)據(jù)庫的路徑?!癿ysever”是遠程計算機名或遠程計算機的IP地址?!癿yshare”是共享文件夾的名稱,“mypath”是數(shù)據(jù)庫文件的相對路徑,“mydb.mdb”是被訪問的遠程數(shù)據(jù)庫名稱。在確認(rèn)上述各項設(shè)定正確無誤且遠程計算機共享打開后就可以向該遠程數(shù)據(jù)庫進行各項操作了。[3]   3.3訪問遠程數(shù)據(jù)庫實例   本實例由一個數(shù)據(jù)采集子VI采集生產(chǎn)現(xiàn)場一組數(shù)據(jù),并將這些數(shù)據(jù)存在一個全局?jǐn)?shù)組中,然后采用如圖2所示的框圖程序通過局域網(wǎng)絡(luò)向名為“myserver”計算機中的一個Accesss數(shù)據(jù)庫文件寫入數(shù)據(jù)。該文件名為“sampledatabase”位于共享名為“123”的文件夾中,“mytable”是該數(shù)據(jù)庫文件的一個表格文件。由于要向表格中寫入一組數(shù)據(jù),因此使用一個“for loop”結(jié)構(gòu)并利用其對數(shù)組自動索引功能通過“format into string”子VI生成SQL命令文本依次向表格中寫入數(shù)據(jù)。經(jīng)過一次循環(huán)可以向數(shù)據(jù)庫中添加一條記錄,該記錄包含兩個字段:數(shù)據(jù)編號和數(shù)據(jù)值。如果是連續(xù)采集則可以將上述的程序置于一個“while”循環(huán)結(jié)構(gòu)中,定時調(diào)用數(shù)據(jù)寫入程序即可實現(xiàn)連續(xù)保存數(shù)據(jù)。對于從遠程計算機中讀取數(shù)據(jù)庫文件也可采用類似的方法,在此不再贅述。 4 結(jié)論   實際證明,在Labview中基于ADO技術(shù)構(gòu)建局域網(wǎng)環(huán)境下的,以網(wǎng)絡(luò)共享方式實現(xiàn)對本地或遠程數(shù)據(jù)庫訪問可以充分利用ADO的各種屬性和方法,無需使用其它編程語言,無需增加系統(tǒng)成本,直接在Labview中實現(xiàn)高速、實時地訪問數(shù)據(jù)庫,是一種簡單、經(jīng)濟而又具有實際意義的遠程數(shù)據(jù)庫訪問方法。 參考文獻   [1]楊樂平等,Labview高級程序設(shè)計[M].清華大學(xué)出版社.2003.457-465   [2] 紀(jì)淑娟,蘇蕊,梁永全.利用ADO方法在C/S模式下實現(xiàn)遠程數(shù)據(jù)訪問[J]. 山東科技大學(xué)學(xué)報,2003,22(1):73-75   [3]肖桂東等, SQL Server疑難解析[M].電子工業(yè)出版社.2003.316-325

標(biāo)簽:

點贊

分享到:

上一篇:PLC在水泥散裝機電氣控制上的...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號