邊干邊學(xué)數(shù)據(jù)庫(kù)應(yīng)用_第1頁(yè)
邊干邊學(xué)數(shù)據(jù)庫(kù)應(yīng)用_第2頁(yè)
邊干邊學(xué)數(shù)據(jù)庫(kù)應(yīng)用_第3頁(yè)
邊干邊學(xué)數(shù)據(jù)庫(kù)應(yīng)用_第4頁(yè)
邊干邊學(xué)數(shù)據(jù)庫(kù)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一時(shí)間想到的解決方案是用文件的方式(也只能把數(shù)據(jù)存成文件了)。在使用文件迚行數(shù)據(jù)與管IO函數(shù)中,幵沒(méi)有提供現(xiàn)成的查詢函線性查找的時(shí)間復(fù)雜度為O(N),所以當(dāng)數(shù)據(jù)量逐漸增大時(shí),這將是一個(gè)非??膳碌倪^(guò)程。這個(gè)不可逾越的迫使我不得不再次考慮使用數(shù)據(jù)庫(kù)。我放棄了剛買的新書,打開(kāi)了LabVIEW數(shù)據(jù)庫(kù)工具包的用戶手冊(cè)和范例程序,尋找著我期望的數(shù)據(jù)保存,修改,初除和查詢功能。到下班的時(shí)候,Everythinggoeswell,基本掌握了用LabVIEW回想起這段歷程,突然有種想與家一起的沖動(dòng)—不懂?dāng)?shù)據(jù)庫(kù)的工程師也可以玩數(shù)據(jù)庫(kù)究復(fù)雜的關(guān)系模型、抽象的關(guān)系代數(shù)、艱深的數(shù)據(jù)庫(kù)設(shè)計(jì)…助bIW據(jù)庫(kù)工包(taeoeiiytokt可以在應(yīng)的層,方便操庫(kù)相關(guān)的基本概念,然后在LabVIEW平臺(tái)上一邊學(xué)習(xí),一邊實(shí)踐如何、管理和查詢數(shù)據(jù)。

2060年代,第一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)發(fā)明以前,數(shù)據(jù)記錄主要是通過(guò)磁盤或穿孔卡管理和共享數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)運(yùn)而生。第一個(gè)數(shù)據(jù)庫(kù)是通用電氣公司Baan等人在1961年開(kāi)發(fā)成功的IDS(IntegratedDataStore)隨后,在1970年,IBM的研究員E.F.Codd博士在《CommunicationoftheACM》上了一篇名為“ARelationalModelofDataforLargeSharedDataBanks”的,提出了關(guān)系模型的概念,奠定了關(guān)系模型的理論基礎(chǔ)。這篇被普遍認(rèn)為是數(shù)據(jù)庫(kù)系統(tǒng)歷史上具有劃時(shí)代意義的里程碑。Codd的心愿是為數(shù)據(jù)庫(kù)建立一個(gè)優(yōu)美的數(shù)據(jù)模型,后來(lái)Codd又陸續(xù)多篇文章,論述了范式理論和衡量關(guān)系系統(tǒng)的12條標(biāo)準(zhǔn),用數(shù)學(xué)理論奠定了關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)。1974年,IBMRayBoyceDonChamberlinCodd關(guān)系數(shù)據(jù)庫(kù)的12條準(zhǔn)則的數(shù)學(xué)定義以簡(jiǎn)單的關(guān)鍵字語(yǔ)法表現(xiàn)出來(lái),提出了具有里程碑意義的SQL(StructuredQueryLanguage)語(yǔ)言。SQL語(yǔ)言的功能包括查詢、、定義和控制,是一個(gè)綜合的、通用的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,同時(shí)又是一種高度非過(guò)程化的語(yǔ)言,只要求用戶做什么而不需要怎么做。SQL語(yǔ)言的這個(gè)特點(diǎn)使乊現(xiàn)今,數(shù)據(jù)庫(kù)技術(shù)已經(jīng)發(fā)展的比較成熟了,著名的數(shù)據(jù)庫(kù)管理系統(tǒng)有SQLServer、Oracle、DB2、SybaseASE、VisualForPro、Access等。Access是在Windows環(huán)境下非常流行的桌面型數(shù)據(jù)庫(kù)管理系統(tǒng),它作為office組件乊一,安裝和使用都非常方便,幵且支持SQL語(yǔ)言,所以本文將基于Access來(lái)介紹數(shù)據(jù)庫(kù)的操作。AccessLabVIEW數(shù)據(jù)庫(kù)工具包只能操作而不能創(chuàng)建數(shù)據(jù)庫(kù),所以必須借助第數(shù)據(jù)庫(kù)管理系統(tǒng),比Access,來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。本文的大型數(shù)據(jù)庫(kù)范例程序是測(cè)試,所以先建立一個(gè)名Data.mdb2.1

2.1AccessLabVIEW數(shù)據(jù)庫(kù)工具包操作數(shù)據(jù)庫(kù)乊前,需要先連接數(shù)據(jù)庫(kù),這就像操作文件乊前,先要LabVIEW數(shù)據(jù)庫(kù)工具包基于ODBC(OpenDatabaseConnectivity)技術(shù),如圖2.2所示,在使用ODBCAPIDSN(DataSourceNames)才能連接到實(shí)際數(shù)據(jù)庫(kù),所以我們需要首先創(chuàng)建DSN。2.2LabVIEWODBC【背景知識(shí)】【背景知識(shí)】ODBC(OpenDatabaseConnectivity,開(kāi)放數(shù)據(jù)庫(kù)互連)是微軟公司開(kāi)放服務(wù)結(jié)構(gòu)(WOSA,WindowsOpenServicesArchitecture)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組成部分,它建立了一組規(guī)范, 的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口。這些API利用SQL來(lái)完成其大部分仸務(wù)。ODBC本身也提供了對(duì)SQL語(yǔ)言的支持,用戶可以直接將SQL語(yǔ)句送給ODBC。在“Windows控制面板”中雙擊“管理工具 ”,然后雙擊“數(shù)據(jù)源” ,迚入ODBC數(shù)據(jù)源管理器,如圖2.3所示。2.3ODBCUserDSN(用戶數(shù)據(jù)源名)選項(xiàng)卡下建立的數(shù)據(jù)源名只有本用戶才能,SystemDSN(系統(tǒng)數(shù)據(jù)源名)選項(xiàng)卡下建立的數(shù)據(jù)源名在該系統(tǒng)下的所有用戶都可以。UserDSN選項(xiàng)卡下點(diǎn)擊按鈕,會(huì)彈出數(shù)據(jù)源驅(qū)動(dòng)選擇框,然后選擇AccessDriver(*.mdb),如圖2.4所示。圖2.4數(shù)據(jù)源驅(qū)動(dòng)選擇點(diǎn)擊“Finish”按鈕后,會(huì)彈出ODBC AccessSetup窗口,在DataSourceName填入一個(gè)名字,比 Data,然后在Database欄中單擊Select按鈕選擇先前已經(jīng)建立好Data.mdbOK2.5圖2.5ODBCAccessSetup窗UserDSNDSNOKDNS的建立。打開(kāi)隨本文的程序:ConnectionExample.viDSNName中填入剛建好的DSN名幵運(yùn)行,如圖2.6所示。2.6DSNDSN連接數(shù)據(jù)庫(kù)需要考慮移植問(wèn)題,當(dāng)你把代碼發(fā)布到其它機(jī)器上時(shí),需要手動(dòng)為其重新建立一個(gè)DSN。設(shè)計(jì)的ODBC標(biāo)準(zhǔn)只能關(guān)系型數(shù)據(jù)庫(kù),對(duì)非關(guān)系型數(shù)據(jù)庫(kù)則為力。為解決這個(gè)問(wèn)題,還提供了另一種技術(shù):Active數(shù)據(jù)對(duì)象ADO(ActiveXDataObjects)技術(shù)。ADO是應(yīng)用程序接口(API)用以實(shí)現(xiàn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。ADO使用通用數(shù)據(jù)連接UDL(UniversalDataLink)來(lái)獲得數(shù)據(jù)庫(kù)信息以實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接。在Data.mdb所在的文件夾下點(diǎn)擊鼠標(biāo)右鍵->新建-> DataLink,如圖2.7所示,Data.udl2.7UDL雙擊 Jet4.0OLEDBProvider2.8Next>>Connection選項(xiàng)卡中,選擇已建立好的數(shù)據(jù)庫(kù)文件,然后點(diǎn)擊TestConnection按鈕,如果沒(méi)有什么問(wèn)題的話,會(huì)彈出TestConnectionsucceeded的框,如圖2.9所示。UDL后,打開(kāi)隨本文的程序:ConnectionExample.viDSNName;EverythingafterthislineisanOLEDBinitstring Datamdb;PersistSecurity分號(hào)(;)后面的內(nèi)容是注釋可以不用搭理。DataSource后面是數(shù)據(jù)庫(kù)的絕對(duì)路徑,所以,當(dāng)數(shù)據(jù)庫(kù)我們可以直接把“Data.udl”文件中的信息重新生成,然后傳給DBToolsOpenConnection.vi,如圖2.11所示。具體的實(shí)現(xiàn)可以參看本文附帶的范例。在后面的程序中,本 將使用GetDBPath.vi來(lái)獲得數(shù)據(jù)庫(kù)的位置信息,然后傳給DBToolsOpenConnection.vi。2.12Access打開(kāi)一個(gè)數(shù)據(jù)庫(kù)文件來(lái)錄中的一項(xiàng)內(nèi)容,比如測(cè)試時(shí)間。能夠唯一標(biāo)識(shí)表中某一行的屬性或?qū)傩越M,叫主鍵(PrimaryKey),2.13columncolumninformationDatatype設(shè)置部分,LabVIEW的數(shù)據(jù)類型有許多種,而這DatatypeLabVIEWColumninformationDatatype的對(duì)應(yīng)關(guān)系,如表2.1所示。2.1LabVIEWStringorPictureNotI/O2.14所示,具體代碼請(qǐng)參考CreateTable.vi。與數(shù)據(jù)庫(kù)表格創(chuàng)建相對(duì)應(yīng)的是數(shù)據(jù)庫(kù)表格初除,由實(shí)現(xiàn)。將需要初除的數(shù)據(jù)的名字告訴DBToolsDropTable.vi即可完成數(shù)據(jù)庫(kù)表格的初除操作。具體實(shí)現(xiàn)如圖2.15所示?!尽咎砑右粭l記錄由來(lái)實(shí)現(xiàn),DBToolsInsertData.vi需要三個(gè)主要的參數(shù):table(數(shù)據(jù)表名)告訴DBToolsInsertData.vi往數(shù)據(jù)庫(kù)里的哪個(gè)表格插入數(shù)據(jù);data,告訴DB添加記錄的范例程序如圖2.16所示。LabVIEW數(shù)據(jù)庫(kù)工具包提供了一個(gè)工具VI,可以把指定數(shù)據(jù)表的column是,我們只需要告訴DBToolsSelectData.vi 哪個(gè)數(shù)據(jù)表格,DBToolsSelectData.vi就會(huì)把該表格中的所有數(shù)據(jù)讀出來(lái),如圖2.17所示。LabVIEW數(shù)據(jù)庫(kù)工具包完全支持SQL語(yǔ)言,在的optionalclause輸入端按照SQL語(yǔ)法輸入條件語(yǔ)句,即可讀出感的數(shù)據(jù)。SQL語(yǔ)言非常簡(jiǎn)單,如果從來(lái)沒(méi)有接觸過(guò)SQL語(yǔ)言,可以花一點(diǎn)時(shí)間學(xué)下。LabVIEW數(shù)據(jù)庫(kù)工具包的用戶手冊(cè)附錄A上有SQL的快速參考手冊(cè)。SQL的條件查詢語(yǔ)法格式如圖2.18所示。SELECToptionalclause輸入端加WHERE2.19TestResultTestTime等于字符串20088-2716:24:34”的記錄讀出來(lái)。圖2.19讀出感的數(shù)范圍運(yùn)算符(表達(dá)式值是否在指定的范圍):BETWEEN…AND…NOTBETWEEN…AND…列表運(yùn)算符(刞斷表達(dá)式是否為列表中的指定項(xiàng)):IN1,2……NOTIN(1,2……)模式匹配符(刞斷值是否與指定的字符通配格式相符):LIKE、NOTLIKE據(jù)等操作。由于這些操作幵沒(méi)有現(xiàn)成的VI,所以需要借助SQL語(yǔ)言來(lái)實(shí)現(xiàn)。DBMSSQL語(yǔ)言,LabVIEWSQLSQLSQL語(yǔ)言封裝了起來(lái),以方便他們使用。0節(jié)的操作都是基于已封裝好的VI。如圖2.20所示,DBToolsSelectData.vi先創(chuàng)建了SQL語(yǔ)句,然后用來(lái)執(zhí)行SQL語(yǔ)句,以此實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。SQL2.21

2.21SQL通過(guò)查閱SQL參考手冊(cè),我們知道初除一條記錄的語(yǔ)句是“de DELETEFROMtableDELETEFROMtablenameWHEREcolumn_name=some_value

“dee”語(yǔ)句僅能初除記錄,不能初除表本身;初除表要用“drop”LabVIEWVIDropTable提供了一個(gè)壓縮數(shù)據(jù)庫(kù)的方法,請(qǐng)參考HowToCompactAccessDatabaseThroughADO。其基本思想是,使用ADO的擴(kuò)展:JetOLEDBProviderandReplicationObjects(JRO)中的方法:CompactDatabase。Jet對(duì)象在文件Msjro.dll里面,如圖2.23下面將簡(jiǎn)單介紹一下在LabVIEW中Jet對(duì)象的方法面板上放一個(gè),在右鍵菜單中選擇”SelectActivess”->”Browse…”,如圖2.24所示。2.24JetSelectObjectFromTypeLibraryBrowse2.24所示的路徑選2.25就實(shí)現(xiàn)了在LabVIEW中調(diào)用Jet對(duì)象的CompressDatabase方法。替代原數(shù)據(jù)庫(kù)文件。詳細(xì)實(shí)現(xiàn)請(qǐng)參考AccessFileCompressDatabase.vi。SQL中,修改一條記錄的語(yǔ)句是update,SETcolumn_name=new_valueWHEREcolumn_name=some_valueLabVIEW平臺(tái)下的實(shí)現(xiàn)方法。SQL語(yǔ)言是一種數(shù)據(jù)庫(kù)操作的通用語(yǔ)言,不僅在LabVIEW數(shù)據(jù)庫(kù)工具包中可以用到,在其它語(yǔ)言(如VB,VC)平臺(tái)下也可以使用。希望大家通過(guò)上面的操作不僅學(xué)習(xí)了LabVIEW數(shù)據(jù)庫(kù)工具包,也熟悉了SQL語(yǔ)言。測(cè)試的Power是否合格測(cè)試耳機(jī)的THD曲線測(cè)試的觸摸屏測(cè)試麥克風(fēng)的聲壓級(jí)圖3.1測(cè)試界具體代碼可以參考隨本文的范例:DatabaseExample.lvprjUDL文件等問(wèn)題。在生成可執(zhí)行文件的過(guò)程中唯一需要注意的是把所用到的數(shù)據(jù)庫(kù)文件添到到可執(zhí)行文件的支持文件(Supportfiles)中去。步驟二:在Buildspecification的Sourcefile選項(xiàng)中,把數(shù)據(jù)庫(kù)文件Data.mdb添加Supportfile中,這樣Data.mdb會(huì)被加入SupportDirectory。如圖3.4所示。LabVIEWMDAC2.5的安裝文件——mdac_typ.exemdac_typ.exeMDAC2.5步驟一:把mdac_typ.exe添加到工程中,如圖3.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論