版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第12章訪問數(shù)據(jù)庫當(dāng)編寫記錄采集數(shù)據(jù)、存儲(chǔ)文件信息、回放存儲(chǔ)波形等應(yīng)用程序功能模塊時(shí),通常需要使用數(shù)據(jù)庫訪問技術(shù)。相對(duì)于文件系統(tǒng)使用數(shù)據(jù)庫可以方便地實(shí)現(xiàn)大量數(shù)據(jù)的存儲(chǔ)、管理和條件查詢。LabVIEW本身不能直接訪問數(shù)據(jù)庫,但是可以通過使用以下方法來實(shí)現(xiàn)LabVIEW對(duì)數(shù)據(jù)庫訪問。(1)利用LabVIEW的ActiveX功能調(diào)用ADO控件,使用SQL語言訪問數(shù)據(jù)庫(2)利用免費(fèi)數(shù)據(jù)庫工具包LabSQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問(3)利用LabVIEW中的DLL接口間接訪問數(shù)據(jù)庫(4)利用NI提供的專門的數(shù)據(jù)庫訪問工具包DatabaseConnectivityToolkit實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問12.1MicrosoftADO
12.1.1MicrosoftADO基礎(chǔ)知識(shí)ADO(ActiveXDataObjects,ActiveX數(shù)據(jù)對(duì)象)是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪問關(guān)系或非關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。ADO訪問數(shù)據(jù)源的特點(diǎn)可以概括如下。(1)易于使用,可以說這是ADO最重要的特點(diǎn)之一。(2)可以訪問多種數(shù)據(jù)源,使應(yīng)用程序具有很好的通用性和靈活性。(3)訪問數(shù)據(jù)源效率高,高速度,低內(nèi)存,占磁盤控件小。(4)有遠(yuǎn)程數(shù)據(jù)服務(wù)功能,方便的Web應(yīng)用。(5)只需創(chuàng)建一個(gè)Connection對(duì)象就可以有多個(gè)獨(dú)立Recordset對(duì)象使用它。12.1.2MicrosoftADO的對(duì)象模型ADO通過編程模型實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。編程模型意味著對(duì)象模型,即響應(yīng)并執(zhí)行編程模型的“對(duì)象”組。對(duì)象包含的參數(shù)類型有:方法、屬性和事件。ADO的目的是訪問、編輯和更新數(shù)據(jù)源。它提供執(zhí)行以下的操作方式。(1)建立與數(shù)據(jù)源的連接(Connection),可選。(2)創(chuàng)建表示命令(如SQL命令)的對(duì)象(Command),可選。(3)在SQL命令中指定列、表和值作為變量參數(shù)(Parameter),可選。(4)執(zhí)行命令(Command、Connection或Recordset)。(5)如果命令以行返回,則將行存儲(chǔ)在緩存中(Recordset)。(6)創(chuàng)建緩存視圖以便對(duì)數(shù)據(jù)進(jìn)行排序、過濾和定位(Recordset),可選。(7)通過添加、刪除或更改行和列來編輯數(shù)據(jù)(Recordset)。(8)適當(dāng)情況下,用緩存中的更改內(nèi)容來更新數(shù)據(jù)源(Recordset)。(9)在使用事務(wù)之后,可以接受或拒絕在事務(wù)中所做的更改,結(jié)束事務(wù)(Connection)。ADO對(duì)象模型包含有9個(gè)對(duì)象。(1)連接對(duì)象(2)命令對(duì)象(3)記錄集對(duì)象(4)記錄對(duì)象(5)數(shù)據(jù)流對(duì)象(6)字段對(duì)象(7)參數(shù)對(duì)象(8)屬性對(duì)象(9)錯(cuò)誤對(duì)象1.連接對(duì)象對(duì)象模型用connection對(duì)象來體現(xiàn)連接的概念。通過連接(Connection)可從應(yīng)用程序訪問數(shù)據(jù)源,連接是交換數(shù)據(jù)所必需的環(huán)境。2.命令對(duì)象對(duì)象模型用Command對(duì)象來體現(xiàn)參數(shù)的概念。“命令”通過已建立的連接發(fā)出,它能以某種方式操作數(shù)據(jù)源。命令通??梢栽跀?shù)據(jù)源中添加、刪除或更新數(shù)據(jù),或者以表中行的格式檢索數(shù)據(jù)。3.記錄集對(duì)象對(duì)象模型用Recordset對(duì)象對(duì)來自提供者的數(shù)據(jù)進(jìn)行操作。使用ADO時(shí),將幾乎全部使用Recordset對(duì)象來對(duì)數(shù)據(jù)進(jìn)行操作。所有Recordset對(duì)象均由記錄(行)和字段(列)組成。某些Recordset方法或?qū)傩钥赡懿豢捎?,這取決于提供者支持的功能。4.字段對(duì)象對(duì)象模型用Field對(duì)象來體現(xiàn)字段。Recordset的一行由一個(gè)或多個(gè)“字段”組成。如果把Recordset看作二維網(wǎng)格,排成行的字段將構(gòu)成“列”。每一字段(列)都分別具有名稱、數(shù)據(jù)類型和值等屬性。正是在這個(gè)值中包含了來自數(shù)據(jù)源的實(shí)際數(shù)據(jù)。除了包含有9個(gè)對(duì)象外,ADO對(duì)象模型還包含有4個(gè)集合。集合也是一種對(duì)象,它可方便地包含其他特定類型的對(duì)象。使用集合屬性可按名稱(文本字符串)或序號(hào)(整數(shù))對(duì)集合中的對(duì)象進(jìn)行檢索。(1)Errors集合
(2)Parameters集合
(3)Fields集合
(4)Properties集合
ADO對(duì)象包含屬性,可通過INTEGER、CHARACTER或BOOLEAN等公用數(shù)據(jù)類型在其中設(shè)置或檢索值。12.2SQL數(shù)據(jù)庫語言SQL(StructuredQueryLanguage,結(jié)構(gòu)查詢語言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言,集數(shù)據(jù)查詢(DataQuery)、數(shù)據(jù)操作(DataManipulation)、數(shù)據(jù)定義(DataDefinition)和數(shù)據(jù)控制(DataControl)于一體,常用于數(shù)據(jù)庫的通信。與C、Pascal等語言不同,SQL沒有循環(huán)結(jié)構(gòu)(如if-then-else、do-while)以及函數(shù)定義等的功能。而且SQL只有一個(gè)數(shù)據(jù)類型的固定設(shè)置,換句話說,用戶不能在使用其他編程語言的時(shí)候創(chuàng)建自己的數(shù)據(jù)類型。12.2.1SQL基礎(chǔ)知識(shí)SQL語言支持關(guān)系數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu),如圖12-1所示。其中外模式對(duì)應(yīng)于視圖和部分基本表,模式對(duì)應(yīng)于基本表,內(nèi)模式對(duì)應(yīng)于存儲(chǔ)文件。圖12-1SQL對(duì)關(guān)系數(shù)據(jù)庫模式的支持(1)DML(DataManipulationLanguage,數(shù)據(jù)操作語言):用于檢索或修改數(shù)據(jù)。DML可以細(xì)分為以下幾個(gè)語句:SELECT:用于檢索數(shù)據(jù)INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫UPDATE:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)(2)DDL(DataDefinitionLanguage,數(shù)據(jù)定義語言):用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫對(duì)象;DDL語句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫對(duì)象。DDL命令主要有:CREATETABLE:建立關(guān)系模式ALTERTABLE:修改關(guān)系模式DROPTABLE:刪除關(guān)系模式CREATEINDEX:建立索引DROPINDEX:刪除索引(3)DCL(DataControlLanguage,數(shù)據(jù)控制語言):用于設(shè)置或者更改數(shù)據(jù)庫用戶權(quán)限的語句。下面是幾個(gè)DCL命令:ALTERPASSWORD:修改密碼GRANT:授予訪問權(quán)限REVOKE:解除訪問權(quán)限12.2.2常用SQL編程語句1.創(chuàng)建表CREATTABLE語句用于創(chuàng)建和定義新的基本表。其語法格式為:CREATTABLE<表名>(<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件][,<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件]]...[,<表級(jí)完整性約束條件>]);2.改基本表
ALTERTABLE語句用于在一個(gè)關(guān)系模式中增加、刪除或修改基本表屬性。其語法格式為:ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>];3.刪除表DROPTABLE語句用于刪除一個(gè)基本表,其語法格式為:DROPTABLE<表名>4.插入數(shù)據(jù)行INSERT語句用于向數(shù)據(jù)庫表中添加新的行數(shù)據(jù)。其語法格式為:INSERTINTO<表名>[(<屬性列1>,<屬性列2>...)]VALUES(常量1,常量2,...);如果INSERTINTO語句沒有指定任何列名,則必須為每個(gè)屬性列賦值,且排列順序必須和數(shù)據(jù)庫表中的屬性列一致;如果只有部分屬性列沒指定,則新記錄在這些指定列中取空值。5.查詢SELECT語句是數(shù)據(jù)庫操作中使用最多的語句,掌握SELECT語句是熟練應(yīng)用數(shù)據(jù)庫的基礎(chǔ)。SELECT語句的語法格式為:SELECT[ALL│DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC│DESC]];運(yùn)算符描述使用方法數(shù)值常量1234‘’“”字符(串)常量‘a(chǎn)bcd’“abcd”{}日期常量{3/12/7}{12:11:17}.T.,.F.邏輯常量.T.,.F.()優(yōu)先運(yùn)算符(A+B)*(C-D)+-加減A+B,C-D*/乘/除A*B,C/D+-正負(fù)-A+字符串連接符‘txta’+‘txtb’=等于Wherea=b<>大于小于WHEREa>b表12-1 常見運(yùn)算符>=<=大于等于小于等于WHEREa>=bIN,NOTIN判斷表達(dá)式是否包含列表中指定項(xiàng)WHEREaIN(‘a(chǎn)pple’,‘egg’)ANYALL否個(gè)值所有值WHEREa>=ANY大于等于子查詢中的某個(gè)值BETWEEN指定值的范圍WHEREcBETWEENaANDb(c在a和b之間)EXISTSNOTEXISTS存在判斷WHEREEXISTS(SELECT*FROM…WHERE…)LINK/NOTLINK模糊查詢,常用于字符串匹配WHEREnameLINK‘SUN’NULL/NOTNULL判斷表達(dá)式是否為空WHEREgradeISNULLWHEREgradeNOTNULL+連接運(yùn)算符<表達(dá)式1>+<表達(dá)式2>NOTANDOR非與或WHEREa=1ANDb<=100*所有列SELECT*FROMtable1運(yùn)算符描述使用方法續(xù)表12.3通過LabSQL訪問數(shù)據(jù)庫12.3.1LabSQL工具包概述LabSQL是一個(gè)免費(fèi)開源的數(shù)據(jù)庫訪問工具包,它是第三方公司的產(chǎn)品。通過它可以訪問和操作任何基于ODBC的數(shù)據(jù)庫,包括SQLServer、Access以及Oracle等。LabSQL內(nèi)包含很多VI,通過調(diào)用這些特殊功能的VI可以方便地實(shí)現(xiàn)數(shù)據(jù)庫的訪問。使用LabSQL訪問數(shù)據(jù)庫實(shí)質(zhì)是通過使用MicrosoftADO及SQL語言實(shí)現(xiàn)數(shù)據(jù)庫的訪問。LabSQL把底層的ADO操作模塊化封裝,主要分為三大模塊,命令模塊、連接模塊、記錄集模塊,如圖12-2所示。圖12-2LabSQLADO函數(shù)選板12.3.2數(shù)據(jù)源的兩種創(chuàng)建方法在使用LabSQL前,需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)源并建立數(shù)據(jù)庫的連接。在實(shí)際工程中會(huì)經(jīng)常使用SQLServer數(shù)據(jù)庫和Access數(shù)據(jù)庫。下面講解如何利用這兩種數(shù)據(jù)庫來新建一個(gè)名為liu的數(shù)據(jù)庫,并在數(shù)據(jù)庫中新建一個(gè)名為ziliao的表。1.在SQLServer中創(chuàng)建數(shù)據(jù)庫的步驟圖12-3新建數(shù)據(jù)庫
圖12-4表格設(shè)置窗口2.在Access中創(chuàng)建數(shù)據(jù)庫的步驟圖12-5新建表對(duì)話框圖12-6設(shè)計(jì)視圖方法創(chuàng)建的表界面12.3.3數(shù)據(jù)源的三種連接方式在Labview中常用的數(shù)據(jù)源連接方式有三種:使用ODBC設(shè)定系統(tǒng)數(shù)據(jù)源的方式連接;使用UDL文件的方式連接數(shù)據(jù)源;以字符串的形式輸入連接信息。1.使用ODBC設(shè)定系統(tǒng)數(shù)據(jù)源的方式連接圖12-7ODBC管理器
圖12-8數(shù)據(jù)源驅(qū)動(dòng)選擇對(duì)話框圖12-9ODBC數(shù)據(jù)源配置向?qū)Т翱?.使用UDL文件的方式連接數(shù)據(jù)源UDL文件是指通用數(shù)據(jù)連接文件,用于保存連接字符串。3.以字符串的形式輸入連接信息ConnectionString端子用于設(shè)置或返回建立連接數(shù)據(jù)源的細(xì)節(jié)信息。12.3.4LabSQL中的數(shù)據(jù)操作【例12-8】數(shù)據(jù)庫的基本操作技巧。圖12-10表math1.條件查詢圖12-11條件查詢2.插入數(shù)據(jù)圖12-12插入數(shù)據(jù)3.修改數(shù)據(jù)圖12-13修改數(shù)據(jù)圖12-14修改數(shù)據(jù)24.刪除數(shù)據(jù)圖12-15刪除數(shù)據(jù)圖12-16刪除數(shù)據(jù)(2)12.4通過ADO控件訪問數(shù)據(jù)庫ADO對(duì)象在LabVIEW中是以ActiveX對(duì)象的形式提供的。LabVIEW自4.1版本就引入了支持ActiveX自動(dòng)控制的功能模塊,在5.1版本之后支持客戶和服務(wù)器雙方,即盡管程序是各自獨(dú)立存在的,但它們的信息是共享的。這種信息共享是通過客戶端使用由服務(wù)器端發(fā)布的ActiveX控件來實(shí)現(xiàn)的。圖12-17LabVIEW中調(diào)用ADO
訪問數(shù)據(jù)庫的程序流程【例12-9】在前面使用數(shù)據(jù)庫中sun.mdb的表math中插入一組數(shù)據(jù)。(1)建立ADO對(duì)象圖12-18選擇ADO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海車位購買協(xié)議范本(2024版)版B版
- 二零二五版廢舊設(shè)備買賣及環(huán)境評(píng)估協(xié)議3篇
- 二零二五年度食堂承包與營養(yǎng)搭配服務(wù)合同3篇
- 2025年生物科技企業(yè)部分股權(quán)增資擴(kuò)股合同3篇
- 2025年鮮羊奶行業(yè)新型經(jīng)銷商合作模式合同范本3篇
- 二零二五年度原創(chuàng)動(dòng)漫角色形象知識(shí)產(chǎn)權(quán)歸屬協(xié)議下載2篇
- 二零二五年空壓機(jī)設(shè)備銷售與安裝驗(yàn)收合同2篇
- 2025年度高速公路服務(wù)區(qū)智能停車場(chǎng)車位租用合同范本
- 2025年度個(gè)人跨境電商擔(dān)保代理合同4篇
- 2025年度科技創(chuàng)新型企業(yè)法人股權(quán)激勵(lì)聘用合同范本
- 青島版二年級(jí)下冊(cè)三位數(shù)加減三位數(shù)豎式計(jì)算題200道及答案
- GB/T 12723-2024單位產(chǎn)品能源消耗限額編制通則
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識(shí)課件
- 干部職級(jí)晉升積分制管理辦法
- TSG ZF003-2011《爆破片裝置安全技術(shù)監(jiān)察規(guī)程》
- 2024年代理記賬工作總結(jié)6篇
- 電氣工程預(yù)算實(shí)例:清單與計(jì)價(jià)樣本
- VOC廢氣治理工程中電化學(xué)氧化技術(shù)的研究與應(yīng)用
- 煤礦機(jī)電設(shè)備培訓(xùn)課件
- 高考寫作指導(dǎo)議論文標(biāo)準(zhǔn)語段寫作課件32張
評(píng)論
0/150
提交評(píng)論