使用LabSQL,進行資料庫存取資料庫

使用LabSQL,進行資料庫存取

資料庫是什麼

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

「資料庫(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等皆屬於關聯式資料庫管理系統。一般來說,資料庫管理系統的功能應包含:

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

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

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

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

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

運用LabSQL免費元件來做到與本機Access資料庫連結

  1. 首先,下載LabSQL免費元件,然後解壓縮
    下載地1:http://it360.tw/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\」資料夾內。


  3. 然後開啟LabVIEW,此時會發現在「User Libraries」裡面已經有LabSQL的元件了


  4. 我們等一下要開啟Example裡面的範例,在Example資料夾內,有下列四個檔案。


  5. 現在,我們先開啟第一個範例:「Example - Fetch a Table.vi」


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


  7. 好,大家應該都是使用微軟的作業系統吧!!請按「」。站長我看到這樣的畫面:


  8. 我想要找一個叫做「系統管理工具」的選項,但是目前並沒有看到,沒關係,用滑鼠按右鍵,選「內容」。


  9. 選擇:「自訂


  10. 然後,在「進階」裡面,將「系統管理工具」的顯示位置稍作修改,最後按「確定」。


  11. 在「系統管理工具」裡面,選擇「資料來源 (ODBC)


  12. 在「系統資料夾名稱」處,選取「新增


  13. 選擇「Microsoft Access Driver(*.mdb)」,然後按「完成


  14. 資料來源名稱假設輸入:「myDB」,在「資料庫」處,按「選取」,然後選擇你的資料庫的路徑,選好後,按下確定


  15. 然後就可以看到我們成功新增的設定


  16. 最後回到範例程式,按下執行,就可以看到我們真的成功地從資料庫檢索出一些資料了。


  17. 成功地從本地Access資料庫讀取資料!

運用LabSQL元件來做到與遠端SQL資料庫連結

  1. 其實與SQL資料庫連結,比較簡單。本文所使用的測試資料庫是Microsoft SQL Server 2000。
  2. 需要更改ConnectionString,舉例說明:
    Provider=sqloledb;Server=140.117.11.1\SQLServerName;User ID=ID;Password=Password;Database=DataBaseName;
    其中,藍色粗體代表您需要依據您的SQL狀況,自行更改的部份。
  3. 實際run的情況如下圖

  4. 成功從SQL資料庫擷取資料!!

感謝分享

感謝!很實用

請問版主知不知道如何在64位元版Windows7用LabSQL連結Access2007的資料庫(副檔名為accdb)

 

資料來源(ODBC)我試過無法新增Access2007的資料庫

 

有試成功在資料來源(ODBC)沒有設定的狀況下讀取Access2003的資料庫

感謝大大分享

 Win7 x64 odbc有兩個路徑:

1. C:\Windows\System32\odbcad32.exe

2. C:\Windows\SysWOW64\odbcad32.exe

你試看看

[QUOTE=Hanes]

 Win7 x64 odbc有兩個路徑:

1. C:\Windows\System32\odbcad32.exe

2. C:\Windows\SysWOW64\odbcad32.exe

你試看看

[/QUOTE]

努力了測試幾天都不行,在Win7下似乎不支援用這種方式讀取Access 2007的資料庫,微軟的網站也找不到可用的文件資料,目前測試沒問題的就是MS SQL和My SQL

請問版主
我將LabSQL安裝到你說的資料夾中,可是我打開labview時沒有像你這樣,
這跟試用版本有關係嗎?

謝謝

解壓縮後,將資料夾「LabSQL ADO functions」整個複製到「C:\Program Files\National Instruments\LabVIEW 7.0\user.lib\」資料夾內。

7.0這邊應該要變成你現行安裝的版本,你可以在 [C:\Program Files\National Instruments] 下面找到

版大
我把壓縮檔的LabSQL ADO functions資料夾放進LabVIEW 2012\user.lib\」資料夾內,還是不行耶


版大,我想問一下,我照著你的做,可是讀不到