LabVIEW

 找回密碼
 注冊

掃一掃,訪問微社區

查看: 231|回復: 2
打印 上一主題 下一主題

河内五分彩选号软件: [推薦貼] LabVIEW中訪問數據庫的幾種不同方法

[復制鏈接]
跳轉到指定樓層
1
發表于 2019-5-14 09:48:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
USB-6009數據采集卡首發

五分彩走势图怎么看 www.zwrdvl.com.cn 虛擬儀器VI(Virtual Instruments)是National Instruments公司在其產品五分彩走势图怎么看中首先提出的創新概念[1]。虛擬儀器系統的概念是測控系統的抽象。不管是傳統的還是虛擬的儀器,它們的功能都是相同的:采集數據并進行分析處理,然后顯示處理的結果。它們之間的不同主要體現在靈活性方面。虛擬儀器由用戶自己定義功能,可以自由地組合計算機平臺、硬件、軟件以及完成應用系統所需要的各種功能。另外,虛擬儀器開發周期短、成本低、維護方便,易于應用新理論和新技術實現儀器的換代升級[2]。
, w2 \' e% o+ v

現代的測試測量系統大多數需要對被測對象進行全方位檢測,這必然會使獲取的數據量急劇增長。面對大量的數據信息,采用數據庫技術,可準確反映各類數據之間的密切聯系,能夠有效地管理和組織數據,是現代測試測量系統的發展趨勢。但是現有的LabVIEW版本本身并不具備數據庫訪問功能,不能像VB、VC++、Delphi、PowerBuilder那樣非常方便的進行數據庫程序的開發。因此以LabVIEW編制的虛擬儀器系統需要其它輔助的方法來進行數據庫訪問。

1在LabVIEW中訪問數據庫的方式
; n1 y4 i- s1 M7 r/ R4 l6 w

(1)利用NI公司的附加工具包中的數據庫接口工具包LabVIEW SQL Toolkit進行數據庫訪問。該工具包集成了一系列的高級功能???,這些??櫸庾傲舜蠖嗍氖菘獠僮骱鴕恍└嘸兜氖菘夥夢使δ?。它的優點是易于理解,操作簡單,用戶可以不學習SQL語法。缺點是需要另外購買且價格昂貴,無疑會增加系統成本。

(2)利用LabVIEW的ActiveX功能,調用Microsoft ADO對象,利用SQL語言實現數據庫的訪問。使用這種方法需要用戶對Microsoft ADO以及SQL語言有較深的了解。

(3)通過第三方開發的免費工具包LabSQL訪問。LabSQL利用Microsoft ADO以及SQL語言來完成數據庫訪問,將復雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs,簡單易用。

(4)通過調用動態鏈接庫DLL(Dynamic Link Library)訪問。先利用其它語言如Visual C++編寫DLL,再利用LabVIEW的調用庫函數節點CLFN(Calling Library Function Node)調用此DLL訪問數據庫。但這種方法需要從底層進行復雜的編程才能實現,對非專業編程人員來講是不現實的[3]。

(5)利用中間文件存取數據。先將數據存入文件之中,待測量結束后再用專門的工具將數據導入到數據庫之中。這種方法需要磁盤文件作為中介,而且不具有實時性,不方便使用[4]。

實際應用中,前三種方法使用最為廣泛,下面將重點討論這三種方法。

2 利用ADO技術訪問數據庫2.1 ADO技術簡介

ADO(ActiveX Data Objects)是Microsoft為OLE DB設計的應用層接口,它為一致的數據訪問接口提供了良好的擴展性而不局限于單一的數據源。

ADO接口編程模型中包括連接(Connection)、命令(Command)、參數(Parameter)、記錄集(Recordset)、字段(Field)、錯誤(Error)、屬性(Property)、集合(Collection)、事件(Event)等元素。其中Connection、Command、Recordset是三個主體對象,Parameters、Fields、Errors、Properties是四個集合對象[5]。

ADO的一般操作方式為:1連接到數據源;2指定訪問數據源的命令;3執行命令;4將命令執行后產生的結果保存在緩存中;5更新數據庫。ADO的主要優點是易于使用、高速度、低內存支出和占用磁盤空間較少[6]。

2.2 LabVIEW中對ADO的調用

ADO對象在LabVIEW中是以ActiveX對象的形式提供的。LabVIEW自4.1版本就引入了支持ActiveX自動控制的功能???,在5.1版本之后支持客戶和服務器雙方,即雖然程序是在雙方各自***存在,但它們的信息是共享的。這種信息共享是通過客戶端使用由服務器端發布的ActiveX控件來實現的。

圖1展示的是LabVIEW中使用ActiveX控件的程序流程。ActiveX對象的打開和關閉是通過打開自動化節點(Automation Open)和關閉自動化節點(Close Reference)來實現的,屬性的設置和獲取則通過屬性節點(Property Node)進行,而調用節點(Invoke Node)用于對象方法的調用。其中關鍵的是第二步,只有充分的利用“屬性”和“方法”的設置才能成功地實現對數據庫的訪問[7]。

2.3應用實例

(1)建立ADO對象

在前面板控件模板的“引用句柄”子模板中選擇“自動化引用句柄”項,把它拖放到前面板上,在其右鍵菜單中“選擇ActiveX類>>瀏覽...”,彈出“從類型庫中選擇對象”對話框,在類型庫Type Library下拉列表中選擇Microsoft ActiveX Data Objects 2.8 Library Version 2.8,在下面的對象Objects列表欄中出現這個庫對LabVIEW可用的對象,選中Connection對象,點擊“確定”按鈕即可。使用同樣的方法可以建立Command、Recordset等對象。
  {; g* ?' ~( l0 N, k2 Z

(2)連接到數據源

在程序框圖功能模板中選擇“互連接口>>ActiveX子模板”,選擇其中的“打開自動化”與前面的ADODB._Connection相連即可打開Connection對象。接著從ActiveX子模板中選擇“調用節點”并與“打開自動化”相連,在其上單擊右鍵“選擇方法>>Open”,即出現圖2中所示的節點。其中“ConnectionSring”是連接到數據源的字符串,“UserID”和“PassWord”是連接到數據源的用戶名和密碼,正確設置這些參數后便可連接到數據源。

(3)生成SQL命令、執行命令

與上一步相同的步驟,用“調用節點”調用Connection對象的Execute方法執行所要的操作。Execute方法所必需的參數為CommandText,這里為所要執行的SQL語句。例如可以使用Create命令創建表,用Drop命令刪除表,用Insert命令向表中插入數據,用Select命令進行查詢并返回操作結果等[8]。本例使用Create命令創建了一個名為Staff的表,包括編號、姓名和年齡三個字段,其中id字段為主鍵,自動編號。對數據表的刪除和添加數據的操作過程與建表過程類似。如果要對執行后的記錄進行顯示或讀取字段值則需要建立Recordset對象,并與Execute相連。

(4)關閉連接

對數據庫訪問操作完畢后要及時關閉連接對象以釋放內存和所用的系統資源。首先使用Connection對象的Close方法關閉數據庫連接,然后使用ActiveX子??櫓械摹骯乇找謾憊乇誂ctiveX自動化參數號。

3 利用LabSQL訪問數據庫3.1 LabSQL簡介

LabSQL是一個免費的、多數據庫、跨平臺的LabVIEW數據庫訪問工具包,由Premkc Development公司的Chris Roth和Jeffrey Travis開發。目前的最新版本是LabSQL Release 1.1a,可以到網站//jeffreytravis.com免費下載。LabSQL支持Windows操作系統中任何基于OBDC的數據庫,包括Access,SQL Server,Oracle,Pervasive,Sybase等。

LabSQL利用Microsoft ADO對象和SQL語言來完成數據庫訪問,將復雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs,簡單易用。

LabSQL VIs按照功能可以分為四類:Command VIs,Connection VIs,Recordset VIs和Top Level VIs。

Command VIs的功能是完成一系列的基本ADO操作,例如,創建或刪除一個Command,對數據庫的某一個參數進行讀或寫等。

Connection VIs的功能是管理LabVIEW與數據庫之間的連接。

Recordset VIs用于對數據庫中的記錄進行各種操作,例如,創建或刪除一條記錄,對記錄中的某一個條目進行讀或寫等。

Top Level VIs屬于頂層的LabSQL應用,對前三類LabSQL VIs某些功能的封裝,例如,SQL Execute.vi可用于直接執行命令[9]。

. U  ~/ c, `0 g1 e7 B/ N, \% H
! C; z0 h$ `& |
IDAQ-USB-6009數據采集卡
2
 樓主| 發表于 2019-5-14 09:50:05 | 只看該作者
在線課堂
3.2 LabSQL應用實例

本應用實例是向數據表添加記錄,所使用的數據源與上例相同,數據表為staff表。具體步驟如下:

第一步:建立與數據庫的連接。首先通過ADO Connection Create.vi創建一個Connection對象,然后利用ADO Connection Open.vi建立與數據庫的連接。數據庫由ADO Connection Open.vi的ConnectionString指定,此參數由前面板的字符串控件提供,如圖3所示。

第二步:生成SQL命令,執行命令。在前面板table控件中輸入表名,name和age控件中輸入字段值。在程序框圖中使用Format Into String生成SQL命令,將它連接到ADO Connection Execute.vi即可執行,同時可在前面板Command Text控件中顯示此命令。

第三步:斷開與數據庫之間的連接。利用ADO Connection Close.vi關閉Connection對象,并使用ADO Connection Destroy.vi刪除Connection對象。

4 利用LabVIEW SQL Toolkit訪問數據庫4.1 LabVIEW SQL Toolkit簡介

LabVIEW SQL Toolkit(又被稱作為LabVIEW Database Connectivity Toolset)是用于數據庫訪問的附加工具包,它集成了一系列的高級功能???,這些??櫸庾傲舜蠖嗍氖菘獠僮骱鴕恍└嘸兜氖菘夥夢使δ躘10]。其主要的功能如下:

(1)支持ADO所支持的所有的數據庫引擎;

(2)支持所有與ODBC或OLE DB兼容的數據庫驅動程序;

(3)具有高度的可移植性,在任何情況下,用戶通過改變DB Tools Open Connection VI的輸入參數Connection String就可以更換數據庫;

(4)可以將數據庫中Column Values的數據類型轉換為標準LabVIEW Database Connectivity Toolset的數據類型,這進一步增強了它的可移植性;

(5)與SQL兼容;

(6)不使用SQL語句就可以實現數據庫記錄的查詢、添加、修改以及刪除等操作;

(7)用戶可以完全不需要學習SQL語法。

用戶可以使用LabVIEW SQL Toolkit在LabVIEW中支持ODBC的本地或遠程數據庫,例如Microsoft Access,Microsoft SQL Sever,Sybase SQL Server以及Oracle等[11]。

4.2應用實例

本應用實例是顯示上面所建staff表中的所有記錄,所使用的數據源與上面兩例相同。具體步驟如下:

(1)使用DB Tools Open Connection打開數據庫連接[12]。

(2)顯示指定數據表中所有數據。

使用DB Tools List Tables以一維數組形式列出指定數據庫中的所有表,同時顯示在前面板數組控件tables中。用戶指定Table Index后,通過索引數組函數Index Array索引其中一個表。然后將表名連接到DB Tools List Columns和DB Tools Select All Data。

DB Tools List Columns的Columns參數用一維字符串數組返回指定表的字段名,通過屬性節點將字段名顯示在表格控件Table Data的首行,同時使用數組大小函數Array Size取得字段數,即表的列數,顯示在Columns中。

DB Tools Select All Data的Data參數以二維字符串數組形式返回表中所有數據,顯示在Table Data中,同時使用Array Size和Index Array函數取得記錄數,也就是行數,顯示在Rows中。

(3)使用DB Tools Close Connection斷開連接。


: H. r1 }, \' d5結論

綜上所述,使用ADO,LabSQL或LabVIEW SQL Toolkit訪問數據庫的基本步驟都是相同的,都要經過連接數據庫、執行操作、斷開連接這三個步驟。

使用ADO主要優點是易于使用、高速度、低內存支出和占用磁盤空間較少,但需要用戶對Microsoft ADO以及SQL語言有較深的了解。

使用LabSQL不用精通ActiveX技術和SQL語言,操作簡介,容易理解,但它沒有對ADO的所有功能進行封裝,功能上有局限性。

LabVIEW SQL Toolkit支持ADO所支持的所有的數據庫引擎,不使用SQL語句就可以實現數據庫記錄的查詢、添加、修改以及刪除等操作,使用SQL語句能夠實現復雜的數據庫操作,功能強大,但其昂貴的價格對于很多用戶來講是不能承受的,這也限制了它的推廣應用。

在實際應用中,用戶究竟采用哪種方法要從項目難易程度、自身編程水平和技術經濟等方面綜合考慮

( O" S" f& U  X7 }
$ l# l" W$ t! c' W+ H2 o* _, T8 ~

7 J- r0 [; S9 y9 j
3
發表于 2019-5-30 13:23:57 | 只看該作者
強哥就是強哥
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

QQ|小黑屋|無圖瀏覽|手機版|網站地圖|五分彩走势图怎么看 ( 滬ICP備13044638號-3 )

GMT+8, 2019-8-16 14:16 , Processed in 0.031766 second(s), 26 queries , Gzip On, MemCache On.

Powered by 五分彩走势图怎么看 X3.4

© 2006-2019 IOEDU Inc.

快速回復 五分彩走势图怎么看 返回列表