access 文本转换数字_LabVIEW访问Access数据库教程
最近做了一個項目,使用到了Microsoft Access數據庫來存儲數據,在自己電腦上試驗時候(office版本是2011),都是好的,但已安裝到客戶電腦(版本是2013),數據庫打開時候報錯。在NI管網上各種搜索報錯原因,最后在這篇文章中找到了答案。
問題:?Access數據庫是微軟提供的一個常見的數據庫工具,如何使用LabVIEW訪問和使用Access數據庫目前沒有完整教程,這里給出從新建、連接、增刪改查等基本操作的方案,方便快速上手。
解答:
1.?環境搭建與準備工作
???開發計算機上應當裝有Microsoft Access及Access數據庫引擎,下載地址https://www.microsoft.com/en-us/download/details.aspx?id=13255?辦公室電腦默認沒有安裝這個數據庫引擎,會導致后續制作UDL文件時找不到Microsoft Office 12.0 Access DatabaseEngine 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?[myprice] > 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?(value1,?value2,…,?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?ORDERBY?Price?ASC, id?DESC
這里進行了排序操作ORDER BY,排序可以有多個關鍵字,每個關鍵字可以分別是升序ASC和降序DESC。本例中的操作將Price升序排列,對于Price一致的,id號降序排列,如圖3?
圖3 排序操作結果
以下鏈接對Access中使用SQL語句進行了講解
https://support.office.com/zh-cn/article/Access-SQL%EF%BC%9A%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E3%80%81%E8%AF%8D%E6%B1%87%E5%92%8C%E8%AF%AD%E6%B3%95-444d0303-cde1-424e-9a74-e8dc3e460671
總結
以上是生活随笔為你收集整理的access 文本转换数字_LabVIEW访问Access数据库教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTX5 | 配置文件RTX_Confi
- 下一篇: 不一样 使用别名 数据字段和bean_【