如何使用LabVIEW存取本機Access資料庫

一、何謂資料庫

以最簡單的方式來說,資料(Data)指的是未經處理的原始資料,例如:個人姓名、贂品資料,戶籍資料、學生成績...等等。基本上,所謂的「資料庫系統」就是餵了幫助人門處理大量的資料。舉例來說,STDB網站就是一個資料庫,裡面有許多網友的個人資料、發表文章、收藏文章...等等。這些資料若以人工來處理相當費時,所以電腦化的資料庫管理也就應運而生。

「資料庫(DataBase)」,則是一種特殊設計的軟體,它可以將資料以數位化的方式保存在電腦中。另一個常見的名詞:資料庫管理系統(DataBase Management System,DBMS),則指的是一組軟體的集合,它們可以提供我門操作在資料庫的資料,例如:儲存、異動、查詢與備份等功能。

在資料庫的實做上,有一些不同的設計方法,像是早期的階梯式(Hierarchical)、網路式(Network)等架構、目前主流的關聯式(Relational)架構,以及近年來興起的物件導向式(Object-Oriented)等不同架構被使用。隨著實做的方法不同,資料庫又被稱為「階層式衣料庫」、「網路式資料庫」與「關聯式資料庫」等,目前市場上絕大多數的資料庫,都是屬於「關聯式資料庫」。

二、關聯式資料模型

所謂的資料模型,指的是在使用者與電腦系統間一致的抽象模式,關聯式資料庫就是其中的一種,同時也是目前最廣為使用的模型。在這裡所謂的模型,就是資料的抽象表示方式。在關聯式資料模型中,一個資料庫是由一群資料表(Table)所集合而成;而資料表(Table)又是由一些記錄(Record)所組成;每一筆紀錄則是由一些欄位(Field)所組成。不過在關聯式資料模型中,同一個資料表中的紀錄,其組成的欄位都必須相等。

常常使用LabVIEW的人或是常常寫程式的人,對於Array應該都不陌生吧。我個人認為,許多欄位(Field)集合,就是一維Array;紀錄(Record)就是二維Array;而資料表(Table)就是三維Array。

三、關聯式資料庫管理系統

所謂的「關聯式資料庫管理系統(Relational DataBase Management System,RDBMS)」,指的是資料庫設計上採用的是關聯式資料模型。目前主流的資料庫管理系統,如Microsoft SQL Server、Microsoft Access、Oracle、Informix等皆屬於關聯式資料庫管理系統。一般來說,資料庫管理系統的功能應包含:

  1. 資料定義(Data Define):您可以定義資料表中要有什麼欄位,以什麼樣的資料型別存放,或者是刪除資料表。
  2. 資料處理(Data Manipulation):您可以對資料表中的資料依照所指定的條件,做新增、修改、刪除的工作。
  3. 資料查詢(Data Query):您可以對資料庫中的資料進行過濾,列出符合條件的資料紀錄。
  4. 資料安全的管理(Data Security):資料庫通常不只一個人在使用,所以必須要管制使用者所能夠修改資料的權限。

上述的功能中,以新增、修改、刪除資料定義、紀錄與資料安全管理,為最基本的資料庫操作。但其中的「資料查詢」卻是可以將資料過濾,產生有用的資訊。這些新增、修改、刪除與查詢的操作,都可以透過SQL指令來完成。所謂SQL指令,指的是依照標準的SQL語法,所下達的資料庫操作命令。有關SQL語法,本期電子報暫時不詳細說明。

四、為什麼使用LabVIEW會需要用到資料庫

對於一般學生來說,LabVIEW使用來做儀器自動控制的工具,常常使用LabVIEW來做一些實驗數據的讀取,通常,讀取到的資料量都想當少。但是如果您在工廠中,數以百計的儀器都需要使用LabVIEW做儀器自動控制,每一台儀器又會產生一些資料檔或是記錄檔,此時,如過將所以資訊分存於單獨的電腦中,那麼會造成資料分散、不集中的缺點,我門需要將資訊統籌集中在一起,所以需要將資料存放於資料庫中。

此外,資料庫可以處理的資料量遠比一般純文字檔能處理的資料量大。一個Microsoft Access資料庫可以儲存2GB的資料量,而Microsoft SQL Server理論上能存放的資料量是無權大。而且資料庫具有優異的查詢效能,可以協助我們將龐大的資料過濾,得到我們真正想要的資料。

以下,我們就要用一個簡單的例子,學習如何使用免費的SQL元件存取本機Access資料庫。

五、運用LabSQL免費元件來做到與本機Access資料庫連結,分解步驟:

  1. 首先,下載LabSQL免費元件,然後解壓縮
    下載地1:https://stdb.org/images/bbs_uploads/LabSQL-1.1a.zip
    下載地2:http://www.jeffreytravis.com/lost/labsql.html

  2. 解壓縮後,將資料夾「LabSQL ADO functions」整個複製到「C:\Program Files\National Instruments\LabVIEW 7.0\user.lib\」資料夾內。
    ![|169x47](upload://Mj2Gxsa9a190R7BfZE10bgTWyE.jpeg)

  3. 然後開啟LabVIEW,此時會發現在「User Libraries」裡面已經有LabSQL的元件了
    ![|352x240](upload://tued39Q23wYGEv714JdoK6NX1kg.jpeg)

  4. 我們等一下要開啟Example裡面的範例,在Example資料夾內,有下列四個檔案。
    ![|465x146](upload://rpvcb9BgEI2MtGVZG1HQxTOaOPA.jpeg)

  5. 現在,我們先開啟第一個範例:「Example - Fetch a Table.vi」
    ![|172x54](upload://3POsH7j9QeDWL4moJvG7hk9p0NZ.jpeg)

  6. 在程式面板上,請注意看唷,是不是有一個「DSN=myDB;」的字樣呢。其實我們就是希望程式去對Example資料夾裡面的「Sample DataBase.mdb」去做查詢、加入資料等動作,但是,電腦要如何才知道myDB指的就是Sample DataBase.mdb呢?這就需要我們去做一些設定。
    ![|427x288](upload://14pxH5S8kykl8HbOAfg1eJXBtxN.jpeg)

  7. 好,大家應該都是使用微軟的作業系統吧!!請按「![|64x19](upload://vEs3boQpHn3WbwALwQXYgLu6RsV.jpeg)」。站長我看到這樣的畫面:
    ![|383x480](upload://bLHOgnBFSaig4JTLeKQveLTUqlZ.jpeg)

  8. 我想要找一個叫做「系統管理工具」的選項,但是目前並沒有看到,沒關係,用滑鼠按右鍵,選「內容」。
    ![|382x76](upload://hor6qyq13m0ExH0va6SdqXBCU6V.jpeg)

  9. 選擇:「自訂
    ![|405x423](upload://A42vA35LYtvr4TfNcpg9UPg5zrr.jpeg)

  10. 然後,在「進階」裡面,將「系統管理工具」的顯示位置稍作修改,最後按「確定」。
    ![|403x393](upload://wMpexXtqHBaNjbJsNxT0HVA8dgE.jpeg)

  11. 在「系統管理工具」裡面,選擇「資料來源 (ODBC)
    ![|444x233](upload://sVlNFhCQbRfTL33GdAvZfrcRWYt.jpeg)

  12. 在「系統資料夾名稱」處,選取「新增
    ![|465x372](upload://6QrCsdBm5wcuD8aoH9ruAsorGb1.jpeg)

  13. 選擇「Microsoft Access Driver(*.mdb)」,然後按「完成
    ![|492x304](upload://ue2jPlfgCBm4rPws9l41We4h3QB.jpeg)

  14. 資料來源名稱假設輸入:「myDB」,在「資料庫」處,按「選取」,然後選擇你的資料庫的路徑,選好後,按下確定
    ![|498x293](upload://ihujeqFvoq6028zK69WklxDTBiZ.jpeg)

  15. 然後就可以看到我們成功新增的設定
    ![|466x373](upload://utuArTUGIPAKYedTwlCXOUnSgnl.jpeg)

  16. 最後回到範例程式,按下執行,就可以看到我們真的成功地從資料庫檢索出一些資料了。
    ![|427x287](upload://rnetGZHEfXYBi6GDkRvzygVxB7L.jpeg)

  17. 更多的範例,請您自行先看看其他的範例,然後歡迎在討論版上提出來,大家一起討論。