




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第12章章 訪問數據庫訪問數據庫 當編寫記錄采集數據、存儲文件信息、當編寫記錄采集數據、存儲文件信息、回放存儲波形等應用程序功能模塊時,通回放存儲波形等應用程序功能模塊時,通常需要使用數據庫訪問技術。相對于文件常需要使用數據庫訪問技術。相對于文件系統(tǒng)使用數據庫可以方便地實現大量數據系統(tǒng)使用數據庫可以方便地實現大量數據的存儲、管理和條件查詢。的存儲、管理和條件查詢。 LabVIEW本身不能直接訪問數據庫,本身不能直接訪問數據庫,但是可以通過使用以下方法來實現但是可以通過使用以下方法來實現LabVIEW對數據庫訪問。對數據庫訪問。 (1)利用)利用LabVIEW的的ActiveX功能調用功能調用
2、ADO控件,使用控件,使用SQL語言訪問數據庫語言訪問數據庫 (2)利用免費數據庫工具包)利用免費數據庫工具包LabSQL實現對實現對數據庫的訪問數據庫的訪問 (3)利用)利用LabVIEW中的中的DLL接口間接訪問接口間接訪問數據庫數據庫 (4)利用)利用NI提供的專門的數據庫訪問工具提供的專門的數據庫訪問工具包包Database Connectivity Toolkit實現對實現對數據庫的訪問數據庫的訪問12.1 Microsoft ADO 12.1.1 Microsoft ADO基礎知識基礎知識 ADO(ActiveX Data Objects,ActiveX數據對象)是數據對象)是Mi
3、crosoft提出的應提出的應用程序接口(用程序接口(API)用以實現訪問關系或非)用以實現訪問關系或非關系數據庫中的數據。關系數據庫中的數據。 ADO訪問數據源的特點可以概括如下。訪問數據源的特點可以概括如下。 (1)易于使用,可以說這是)易于使用,可以說這是ADO最重要的最重要的特點之一。特點之一。 (2)可以訪問多種數據源,使應用程序具)可以訪問多種數據源,使應用程序具有很好的通用性和靈活性。有很好的通用性和靈活性。 (3)訪問數據源效率高,高速度,低內存,)訪問數據源效率高,高速度,低內存,占磁盤控件小。占磁盤控件小。 (4)有遠程數據服務功能,方便的)有遠程數據服務功能,方便的Web
4、應應用。用。 (5)只需創(chuàng)建一個)只需創(chuàng)建一個Connection對象就可以對象就可以有多個獨立有多個獨立Recordset對象使用它。對象使用它。12.1.2 Microsoft ADO的對象模型的對象模型 ADO通過編程模型實現對數據庫的操通過編程模型實現對數據庫的操作。作。 編程模型意味著對象模型,即響應并編程模型意味著對象模型,即響應并執(zhí)行編程模型的執(zhí)行編程模型的“對象對象”組。對象包含的組。對象包含的參數類型有:方法、屬性和事件。參數類型有:方法、屬性和事件。 ADO的目的是訪問、編輯和更新數據的目的是訪問、編輯和更新數據源。源。 它提供執(zhí)行以下的操作方式。它提供執(zhí)行以下的操作方式。
5、 (1)建立與數據源的連接()建立與數據源的連接(Connection),),可選。可選。 (2)創(chuàng)建表示命令(如)創(chuàng)建表示命令(如SQL命令)的對象命令)的對象(Command),可選。),可選。 (3)在)在SQL命令中指定列、表和值作為變命令中指定列、表和值作為變量參數(量參數(Parameter),可選。),可選。 (4)執(zhí)行命令()執(zhí)行命令(Command、Connection 或或 Recordset)。)。 (5)如果命令以行返回,則將行存儲在緩)如果命令以行返回,則將行存儲在緩存中(存中(Recordset)。)。 (6)創(chuàng)建緩存視圖以便對數據進行排序、)創(chuàng)建緩存視圖以便對數據
6、進行排序、過濾和定位(過濾和定位(Recordset),可選。),可選。 (7)通過添加、刪除或更改行和列來編輯)通過添加、刪除或更改行和列來編輯數據(數據(Recordset)。)。 (8)適當情況下,用緩存中的更改內容來)適當情況下,用緩存中的更改內容來更新數據源(更新數據源(Recordset)。)。 (9)在使用事務之后,可以接受或拒絕在)在使用事務之后,可以接受或拒絕在事務中所做的更改,結束事務事務中所做的更改,結束事務(Connection)。)。 ADO對象模型包含有對象模型包含有9個對象。個對象。(1)連接對象)連接對象(2)命令對象)命令對象(3)記錄集對象)記錄集對象(4)
7、記錄對象)記錄對象 (5)數據流對象)數據流對象 (6)字段對象)字段對象 (7)參數對象)參數對象 (8)屬性對象)屬性對象 (9)錯誤對象)錯誤對象1連接對象連接對象 對象模型用對象模型用connection對象來體現連對象來體現連接的概念。通過連接(接的概念。通過連接(Connection)可從)可從應用程序訪問數據源,連接是交換數據所應用程序訪問數據源,連接是交換數據所必需的環(huán)境。必需的環(huán)境。 2命令對象命令對象 對象模型用對象模型用Command對象來體現參數對象來體現參數的概念。的概念。“命令命令”通過已建立的連接發(fā)出,通過已建立的連接發(fā)出,它能以某種方式操作數據源。命令通常可它能
8、以某種方式操作數據源。命令通常可以在數據源中添加、刪除或更新數據,或以在數據源中添加、刪除或更新數據,或者以表中行的格式檢索數據。者以表中行的格式檢索數據。3記錄集對象記錄集對象 對象模型用對象模型用Recordset對象對來自提供對象對來自提供者的數據進行操作。使用者的數據進行操作。使用ADO時,將幾乎時,將幾乎全部使用全部使用Recordset對象來對數據進行操作。對象來對數據進行操作。所有所有Recordset對象均由記錄(行)和字段對象均由記錄(行)和字段(列)組成。某些(列)組成。某些Recordset方法或屬性可方法或屬性可能不可用,這取決于提供者支持的功能。能不可用,這取決于提供
9、者支持的功能。4字段對象字段對象 對象模型用對象模型用Field對象來體現字段。對象來體現字段。 Recordset的一行由一個或多個的一行由一個或多個“字段字段”組組成。如果把成。如果把Recordset看作二維網格,排成看作二維網格,排成行的字段將構成行的字段將構成“列列”。每一字段(列)。每一字段(列)都分別具有名稱、數據類型和值等屬性。都分別具有名稱、數據類型和值等屬性。正是在這個值中包含了來自數據源的實際正是在這個值中包含了來自數據源的實際數據。數據。 除了包含有除了包含有9個對象外,個對象外,ADO對象模型對象模型還包含有還包含有4個集合。集合也是一種對象,它個集合。集合也是一種對
10、象,它可方便地包含其他特定類型的對象。使用可方便地包含其他特定類型的對象。使用集合屬性可按名稱(文本字符串)或序號集合屬性可按名稱(文本字符串)或序號(整數)對集合中的對象進行檢索。(整數)對集合中的對象進行檢索。(1)Errors集合集合 (2)Parameters集合集合 (3)Fields集合集合 (4)Properties集合集合 ADO對象包含屬性,可通過對象包含屬性,可通過INTEGER、CHARACTER或或BOOLEAN等公用數據類等公用數據類型在其中設置或檢索值。型在其中設置或檢索值。 12.2 SQL數據庫語言數據庫語言 SQL(Structured Query Langu
11、age,結構查詢語言)是一個功能強大的數據庫語結構查詢語言)是一個功能強大的數據庫語言,集數據查詢(言,集數據查詢(Data Query)、數據操作)、數據操作(Data Manipulation)、數據定義()、數據定義(Data Definition)和數據控制()和數據控制(Data Control)于一體,常用于數據庫的通信。于一體,常用于數據庫的通信。 與與C、Pascal等語言不同,等語言不同,SQL沒有循沒有循環(huán)結構(如環(huán)結構(如if-then-else、do-while)以及)以及函數定義等的功能。而且函數定義等的功能。而且SQL只有一個數只有一個數據類型的固定設置,換句話說,
12、用戶不能據類型的固定設置,換句話說,用戶不能在使用其他編程語言的時候創(chuàng)建自己的數在使用其他編程語言的時候創(chuàng)建自己的數據類型。據類型。12.2.1 SQL基礎知識基礎知識 SQL語言支持關系數據庫三級模式結語言支持關系數據庫三級模式結構,如圖構,如圖12-1所示。其中外模式對應于視所示。其中外模式對應于視圖和部分基本表,模式對應于基本表,內圖和部分基本表,模式對應于基本表,內模式對應于存儲文件。模式對應于存儲文件。圖圖12-1 SQL12-1 SQL對關系數據庫模式的支持對關系數據庫模式的支持 (1)DML(Data Manipulation Language,數據操作語言):用于檢索或修改數據
13、。數據操作語言):用于檢索或修改數據。 DML可以細分為以下幾個語句:可以細分為以下幾個語句:SELECT:用于檢索數據:用于檢索數據INSERT:用于增加數據到數據庫:用于增加數據到數據庫UPDATE:用于從數據庫中修改現存的數:用于從數據庫中修改現存的數DELETE:用于從數據庫中刪除數據:用于從數據庫中刪除數據 (2)DDL(Data Definition Language,數據定義語言):數據定義語言): 用于定義數據的結構,用于定義數據的結構,比如創(chuàng)建、修改或者刪除數據庫對象;比如創(chuàng)建、修改或者刪除數據庫對象;DDL語句可以用于創(chuàng)建用戶和重建數據庫語句可以用于創(chuàng)建用戶和重建數據庫對象
14、。對象。DDL命令主要有:命令主要有:CREATE TABLE:建立關系模式:建立關系模式ALTER TABLE:修改關系模式:修改關系模式DROP TABLE:刪除關系模式:刪除關系模式CREATE INDEX:建立索引:建立索引DROP INDEX:刪除索引:刪除索引 (3)DCL(Data Control Language,數,數據控制語言):用于設置或者更改數據庫據控制語言):用于設置或者更改數據庫用戶權限的語句。下面是幾個用戶權限的語句。下面是幾個DCL命令:命令:ALTER PASSWORD:修改密碼:修改密碼GRANT:授予訪問權限:授予訪問權限REVOKE:解除訪問權限:解除訪
15、問權限 12.2.2 常用常用SQL編程語句編程語句 1創(chuàng)建表創(chuàng)建表 CREAT TABLE語句用于創(chuàng)建和定義新語句用于創(chuàng)建和定義新的基本表。其語法格式為:的基本表。其語法格式為: CREAT TABLE(列級完整性約束條件列級完整性約束條件 ,列級完整性約束條件列級完整性約束條件 . ,););2改基本表改基本表 ALTER TABLE語句用于在一個關系模語句用于在一個關系模式中增加、刪除或修改基本表屬性。其語式中增加、刪除或修改基本表屬性。其語法格式為:法格式為: ALTER TABLE ADD完整性約束完整性約束 DROP MODIFY;3刪除表刪除表 DROP TABLE語句用于刪除一
16、個基本語句用于刪除一個基本表,其語法格式為:表,其語法格式為: DROP TABLE4插入數據行插入數據行 INSERT語句用于向數據庫表中添加新語句用于向數據庫表中添加新的行數據。其語法格式為:的行數據。其語法格式為: INSERT INTO(,.) VALUES(常量(常量1,常量,常量2,.); 如果如果INSERT INTO語句沒有指定任何語句沒有指定任何列名,則必須為每個屬性列賦值,且排列列名,則必須為每個屬性列賦值,且排列順序必須和數據庫表中的屬性列一致;如順序必須和數據庫表中的屬性列一致;如果只有部分屬性列沒指定,則新記錄在這果只有部分屬性列沒指定,則新記錄在這些指定列中取空值。
17、些指定列中取空值。 5查詢查詢 SELECT語句是數據庫操作中使用最多語句是數據庫操作中使用最多的語句,掌握的語句,掌握SELECT語句是熟練應用數語句是熟練應用數據庫的基礎。據庫的基礎。 SELECT語句的語法格式為:語句的語法格式為: SELECTALLDISTINCT,. FROM ,. WHERE GROUP BY HAVING ORDER BY ASCDESC;運運 算算 符符描描 述述使使 用用 方方 法法數值常量數值常量12341234“”“”字符(串)常量字符(串)常量abcd“abcd”abcd“abcd”日期常量日期常量3/12/7 123/12/7 12:1111:171
18、7.T.T.,.F.F.邏輯常量邏輯常量.T. .T. ,.F.F.()()優(yōu)先運算符優(yōu)先運算符(A+BA+B)* *(C CD D)+ + 加減加減A+B A+B ,C CD D* * / /乘乘/ /除除A A* *B B ,C/DC/D+ + 正負正負A A+ +字符串連接符字符串連接符txtatxtatxtbtxtb等于等于Where aWhere ab b大于大于 小于小于WHERE abWHERE ab表表12-112-1常見運算符常見運算符 WHERE ab bININ,NOT INNOT IN判斷表達式是否包含列表中指判斷表達式是否包含列表中指定項定項WHERE a INWHE
19、RE a IN(appleapple,eggegg)ANY ALLANY ALL否個值否個值 所有值所有值WHERE aWHERE aANY ANY 大于等于子查詢中的某個值大于等于子查詢中的某個值BETWEENBETWEEN指定值的范圍指定值的范圍WHERE c BETWEEN a AND b WHERE c BETWEEN a AND b (c c在在a a和和b b之間)之間)EXISTS NOT EXISTSEXISTS NOT EXISTS存在判斷存在判斷WHERE EXISTSWHERE EXISTS(SELECTSELECT* *FROMWHEREFROMWHERE)LINK /
20、NOT LINKLINK /NOT LINK模糊查詢,常用于字符串匹配模糊查詢,常用于字符串匹配WHERE name LINKSUNWHERE name LINKSUNNULL/NOT NULLNULL/NOT NULL判斷表達式是否為空判斷表達式是否為空WHERE grade IS NULL WHERE grade NOT NULLWHERE grade IS NULL WHERE grade NOT NULL+ +連接運算符連接運算符 +2NOT AND ORNOT AND OR非與或非與或WHERE aWHERE a1 AND b=1001 AND b=100* *所有列所有列SELEC
21、T SELECT * *FROM table1FROM table1運運 算算 符符描描 述述使使 用用 方方 法法續(xù)表續(xù)表12.3 通過通過LabSQL訪問數據庫訪問數據庫 12.3.1 LabSQL工具包概述工具包概述 LabSQL是一個免費開源的數據庫訪問是一個免費開源的數據庫訪問工具包,它是第三方公司的產品。通過它工具包,它是第三方公司的產品。通過它可以訪問和操作任何基于可以訪問和操作任何基于ODBC的數據庫,的數據庫,包括包括SQL Server、Access以及以及Oracle等。等。LabSQL內包含很多內包含很多VI,通過調用這些特殊,通過調用這些特殊功能的功能的VI可以方便地
22、實現數據庫的訪問。可以方便地實現數據庫的訪問。 使用使用LabSQL訪問數據庫實質是通過使訪問數據庫實質是通過使用用Microsoft ADO及及SQL語言實現數據庫語言實現數據庫的訪問。的訪問。LabSQL把底層的把底層的ADO操作模塊操作模塊化封裝,主要分為三大模塊,命令模塊、化封裝,主要分為三大模塊,命令模塊、連接模塊、記錄集模塊,如圖連接模塊、記錄集模塊,如圖12-2所示。所示。圖圖12-2 LabSQL ADO12-2 LabSQL ADO函數選板函數選板12.3.2 數據源的兩種創(chuàng)建方法數據源的兩種創(chuàng)建方法 在使用在使用LabSQL前,需要創(chuàng)建一個數據前,需要創(chuàng)建一個數據源并建立數
23、據庫的連接。在實際工程中會源并建立數據庫的連接。在實際工程中會經常使用經常使用SQL Server數據庫和數據庫和Access數數據庫。下面講解如何利用這兩種數據庫來據庫。下面講解如何利用這兩種數據庫來新建一個名為新建一個名為liu的數據庫,并在數據庫中的數據庫,并在數據庫中新建一個名為新建一個名為ziliao的表。的表。1在在SQL Server中創(chuàng)建數據庫的步驟中創(chuàng)建數據庫的步驟圖圖12-3 12-3 新建數據庫新建數據庫 圖圖12-4 12-4 表格設置窗口表格設置窗口2在在Access中創(chuàng)建數據庫的步驟中創(chuàng)建數據庫的步驟圖圖12-5 12-5 新建表對話框新建表對話框 圖圖12-6 1
24、2-6 設計視圖方法創(chuàng)建的表界面設計視圖方法創(chuàng)建的表界面12.3.3 數據源的三種連接方式數據源的三種連接方式 在在Labview中常用的數據源連接方式有中常用的數據源連接方式有三種:使用三種:使用ODBC設定系統(tǒng)數據源的方式設定系統(tǒng)數據源的方式連接;連接; 使用使用UDL文件的方式連接數據源;文件的方式連接數據源;以字符串的形式輸入連接信息。以字符串的形式輸入連接信息。1使用使用ODBC設定系統(tǒng)數據源的方式連接設定系統(tǒng)數據源的方式連接圖圖12-7 ODBC12-7 ODBC管理器管理器 圖圖12-8 12-8 數據源驅動選擇對話框數據源驅動選擇對話框圖圖12-9 ODBC12-9 ODBC數
25、據源配置向導窗口數據源配置向導窗口2使用使用UDL文件的方式連接數據源文件的方式連接數據源 UDL文件是指通用數據連接文件,用文件是指通用數據連接文件,用于保存連接字符串。于保存連接字符串。 3以字符串的形式輸入連接信息以字符串的形式輸入連接信息 ConnectionString端子用于設置或返端子用于設置或返回建立連接數據源的細節(jié)信息。回建立連接數據源的細節(jié)信息。 12.3.4 LabSQL中的數據操作中的數據操作【例【例12-8】數據庫的基本操作技巧。】數據庫的基本操作技巧。圖圖12-10 12-10 表表mathmath1條件查詢條件查詢圖圖12-11 12-11 條件查詢條件查詢2插入數據插入數據圖圖12-12 12-12 插入數據插入數據3修改數據修改數據圖圖12-13 12-13 修改數據修改數據圖圖12-14 12-14 修改數據修改數據2 24刪除數據刪除數據圖圖12-15 12-15 刪除數據刪除數據圖圖12-16 12-16 刪除數據(刪除數據(2 2)12.4 通過通過ADO控件訪問數據庫控件訪問數據庫 ADO對象在對象在LabVIEW中是以中是以ActiveX對象的形式提供的。對象的形式提供
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新高考理綜試題及答案
- 幼兒園數學考試創(chuàng)造性思維試題及答案
- 材料科學背景下的大學物理考試試題及答案
- 建筑施工安全考試練習題目分析
- 教師教育實施反思與改進試題及答案
- 食品與飲料行業(yè)食品安全監(jiān)管信息化建設報告
- 智能網聯與新能源的協同發(fā)展路徑研究試題及答案
- 茂名郵政筆試試題及答案
- 電大形考試試題及答案
- 江西幼師筆試題目及答案
- 《裝備質量問題歸零實施指南》
- 人衛(wèi)版肺部疾病教學課件
- 面肌痙攣的健康宣教
- 超濾反滲透調試方案
- 外籍人員個人所得稅講義課件
- LED制程與工藝介紹
- 《馬克思主義中國化思想通史》導讀-南京林業(yè)大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 北京中考語文詞語表
- 水資源利用智慧樹知到答案章節(jié)測試2023年西安理工大學
- 水質對干豆腐品質的影響機制及調控技術
- LY/T 2676-2016半干旱地區(qū)灌木林平茬與復壯技術規(guī)范
評論
0/150
提交評論