LabVIEW訪問Access數據庫教程


文章地址:http://digital.ni.com/public.nsf/allkb/40DC253EEB1CC11B8625806E001368D0

主要軟件: LabVIEW Development Systems>>LabVIEW Professional Development System
主要軟件版本: 2015
主要軟件修正版本: N/A
次要軟件: LabVIEW Toolkits>>Enterprise Connectivity Toolset


問題: Access數據庫是微軟提供的一個常見的數據庫工具,如何使用LabVIEW訪問和使用Access數據庫目前沒有完整教程,這里給出從新建、連接、增刪改查等基本操作的方案,方便快速上手。

解答:

1.  環境搭建與准備工作
    開發計算機上應當裝有Microsoft Access及Access數據庫引擎,下載地址 https://www.microsoft.com/en-us/download/details.aspx?id=13255 辦公室電腦默認沒有安裝這個數據庫引擎,會導致后續制作UDL文件時找不到Microsoft Office 12.0 Access Database Engine OLE DB Provider這個選項,即無法使用.accdb擴展名的新版本Access文件(舊版本為.mdb)。
注意!應當下載安裝32位版本的數據庫引擎,否則會出現如下錯誤 http://digital.ni.com/public.nsf/web/searchinternal/61b269d5d3f196bf8625792800365eea?OpenDocument
 
2.  數據庫的基本概念與名詞解釋
    數據庫采用層次結構組織和存儲數據,一個Access數據庫文件包含了若干個表(Table),表是一類數據的集合;每個表中有若干字段(列),代表了某一類屬性例如ID、姓名、聯系方式等;每一行稱作一條記錄,一般一條記錄代表一個個體,可以是一個人、一件貨物等等。
SQL即結構化查詢語言,是用來操作數據庫的標准語言。包括了數據定義、數據操作、數據控制、交易控制四個部分,前兩類是我們常用的,如新建一個表、查詢排序、增加或刪除記錄等。以一個具體語句為例:
SELET  TOP 30 *  FROM mytable  WHERE [my price] > 1000  AND myname <> somename  ORDER BY myid  ASC, mydate  DESC
    該語句選擇了mytable這個表中my price字段大於1000並且myname字段不等於somename 中的前30條記錄中的所有字段(*表示),將他們按照myid字段升序,mydate字段降序排列顯示。 注意!數據庫操作中的英文不分大小寫,例如Table和table是同一個表,id和ID是同一個字段,寫SQL語句時用小寫也可以得到相同的結果,但為了清晰易辨,SQL關鍵詞可以用全大寫。
 
3.  建立UDL 數據庫鏈接
    UDL文件是LabVIEW連接數據庫的樞紐,有兩種方法新建UDL文件,方法一是新建文本文件,將后綴名改成.udl,雙擊之后進行配置,參見 http://digital.ni.com/public.nsf/web/searchinternal/1d5eb4dcbd13106486256b9d005e11b0?OpenDocument 第二種方法是在LabVIEW – 工具- Create Data Link新建UDL並配置數據庫位置,由於不需要人工新建文件和改后綴名, 比較推薦此方法,參見 http://digital.ni.com/public.nsf/allkb/5351D6732E4100B586256F700060CC17?OpenDocument
 
4.  在LabVIEW中操作數據庫
    LabVIEW自帶的database高級操作其實是對SQL Query的封裝,其底層都是使用SQL語言操作數據庫。這里使用圖1所示的vi直接執行SQL語句,可以避免高級操作無法排序顯示、難以執行復雜嵌套語句等弊端,方便快捷的使用SQL的各項功能。
1 核心vi
 
 
 
圖2 核心操作
注意!字段具有不同的類型,如數字、字符串、時間、價格等,在SQL語句中也有不同的標識,操作數字類型(不論整型還是浮點)和價格直接輸入數字即可,如id = 100,字符串需要用’’單引號引起來,如用戶名 = ‘小明’,時間需要用##兩個井號包括起來,如time = #2010/1/1#。也可使用Access提供的類型轉換函數CDate()  https://support.office.com/en-us/article/Type-Conversion-Functions-8ebb0e94-2d43-4975-bb13-87ac8d1a2202一些字段中含有空格,需要用[] 括起來,否則無法正常識別,如[saved level] = 10。
1) [ZK1] 
INSERT INTO USERS (id, 用戶名, 密碼)  VALUES (123, 'xiaoming', '123fasdf')
新增記錄時可以不用對所有字段賦值。注意!字段名與內容類型要一致,要用()括起來。
2)刪
DELETE FROM USERS  WHERE time < #2010/1/1#
WHERE的用法:表示限定條件,如大於>;小於<;不等於<>;在…之間 BETWEEN  value1  AND  value2;包含關鍵字 LIKE  value;多個可能值  IN ( value1value2, …,  valuen);
3)改
UPDATE USERS  SET Price = 1000  WHERE id > 5000
注意:並不是所有字段都可以update,例如本例中的id定義為自增量,不能重復且不能更改。http://stackoverflow.com/questions/24267398/why-is-my-query-not-updateable
4)查
SELECT  top 3 *  FROM USERS  ORDER BY Price  ASC, id  DESC
這里進行了排序操作ORDER BY,排序可以有多個關鍵字,每個關鍵字可以分別是升序ASC和降序DESC。本例中的操作將Price升序排列,對於Price一致的,id號降序排列,如圖3
 
圖3 排序操作結果
 



相關鏈接:



附件: 
KS-LV-Access.rar




報告日期: 2016-11-16
最近更新: 2016-11-21
文檔編號: 7FFM9B6M


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM