0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何輕松搞定數(shù)據(jù)庫應(yīng)用

zwjV_gh_ ? 來源:陳翠 ? 2019-07-07 08:00 ? 次閱讀

LabVIEW 中利用LabSQL 訪問數(shù)據(jù)庫

虛擬儀器VI(virtual instruments)是National Instruments公司在其產(chǎn)品LabVIEW中首先提出的創(chuàng)新概念。隨著現(xiàn)代測試技術(shù)與儀器技術(shù)的發(fā)展,目前虛擬儀器概念已經(jīng)發(fā)展成為一種創(chuàng)新的儀器設(shè)計思想,成為設(shè)計復(fù)雜測試系統(tǒng)和測試儀器的主要方法和手段。同時LabVIEW也以成為測試與測量領(lǐng)域的工業(yè)標準應(yīng)用編程軟件。

但由于LabVIEW本身并不具備數(shù)據(jù)庫訪問功能,因此以LabVIEW編制的虛擬儀器系統(tǒng)需要其它輔助的方法來進行數(shù)據(jù)庫訪問。

1 LabVIEW 中與數(shù)據(jù)庫接口的方法 在基于數(shù)據(jù)庫的虛擬儀器測量測試系統(tǒng)中,很重要的一部分工作是對實時采集地的數(shù)據(jù)進行顯示、查詢、統(tǒng)計、生成報表分析等。這其中涉及的最主要的任務(wù)就是對數(shù)據(jù)的讀取和寫入,即與數(shù)據(jù)庫系統(tǒng)進行交互。據(jù)筆者所知,在LabVIEW 編程環(huán)境下,通常通過以下幾種方法來完成與數(shù)據(jù)庫的接口。

利用NI 公司的附加工具包LabVIEW SQL Toolkit 進行數(shù)據(jù)庫訪問。但是這種工具包比較昂貴,對于很多LabVIEW 用戶來講,這個價格是不可能承受的。

利用其他語言如Visual C++編寫DULL 程序訪問數(shù)據(jù)庫,再利用LabVIEW 所帶的DULL 接口訪問該程序,這樣可以實現(xiàn)間接訪問數(shù)據(jù)庫。但這樣工作量太大。

利用LabVIEW 的ActiveX 功能,調(diào)用Microsoft ADO 控件,利用SQL 語言實現(xiàn)數(shù)據(jù)庫訪問。利用這種方式進行數(shù)據(jù)庫訪問需要用戶對Microsoft ADO 控件以及SQL語言有較深的了解,并且需要從底層進行復(fù)雜的編程才能實現(xiàn)。這對于大多數(shù)用戶來講也是不現(xiàn)實的。

這幾種方法雖然都可以完成對數(shù)據(jù)庫的訪問,但各有缺點不能滿足系統(tǒng)對數(shù)據(jù)庫實時訪問的要求。本文提出通過LabVIEW 用戶開發(fā)的免費LabVIEW 數(shù)據(jù)庫訪問的工具包LabSQL來解決以上存在的問題。

2 數(shù)據(jù)庫訪問的工具包LabSQL 簡介 LabSQL 是一個免費的、多數(shù)據(jù)庫、跨平臺的LabVIEW 數(shù)據(jù)庫訪問工具包。目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系統(tǒng)中任何基于OBDC 的數(shù)據(jù)庫,包括Acess,SQL Server,Orcale,Pervasive,Sybase 等。LabSQL 是利用Microsoft ADO 以及SQL 語言來完成數(shù)據(jù)庫訪問,將復(fù)雜的底層ADO 及SQL 操作封裝成一系列的LabSQL VIs。利用LabSQL 幾乎可以訪問任何類型地數(shù)據(jù)庫,執(zhí)行各種查詢,對記錄進行各種操作。它的優(yōu)點是易于理解,操作簡單,不熟悉SQL 語言的用戶也可以很容易地使用。只需進行簡單地編程,就可在LabVIEW 中實現(xiàn)數(shù)據(jù)庫訪問。它還有一個最大的優(yōu)點是源代碼開放,并且是全面免費的。(注:LabSQL 的下載網(wǎng)址http://jeffreytravis.com)

Microsoft ADO 簡介:Microsoft AciveX Data Objects(ADO)是微軟最新的數(shù)據(jù)庫訪問技術(shù),可以用于編寫通過OLE DB 提供者對在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進行訪問和操作的應(yīng)用程序。OLE DB 是一個底層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫以及電子郵件系統(tǒng)和自定義的商業(yè)對象。ADO 為用戶提供了一個OLE DB 的Automation 封裝接口。如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的ODBC 驅(qū)動程序一樣,不同的數(shù)據(jù)源要求它們自己的OLE DB 提供者(OLE DBprovider)。

SQL 作為關(guān)系型數(shù)據(jù)庫中的一種通用的結(jié)構(gòu)化查詢語言,它的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。SQL 語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前絕大多數(shù)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Orcale,Sybase,Microsoft SQL Server, Access 等都采用了SQL 語言表標準。

3 LabVIEW 中對LabSQL 的使用3.1 LabVIEW 中加入LabSQL 在LabVIEW 安裝目錄中的user.lib 文件夾中新建一個名為LabSQL 的文件夾,并將下載得到的LabSQL.zip 壓縮文件中所有文件解壓到這個文件夾中。解壓縮后的文件包括LabSQLADO functions 和Examples 兩個文件夾,以及ADO210.CHM 和README_FIRST.txt 兩個文件。再次運行時,LabVIEW 的功能模塊就會自動加載LabSQL。3.2 LabSQL 的配置

LabSQL 與數(shù)據(jù)庫之間是通過ODBC 連接,用戶需要在ODBC 中指定數(shù)據(jù)源名稱和驅(qū)動程序。因此在使用LabSQL之前,首先需要在Windows 操作系統(tǒng)中的ODBC 數(shù)據(jù)源中創(chuàng)建一個DSN(data source name,數(shù)據(jù)源名)。LabSQL 與數(shù)據(jù)庫之間的連接就是建立在DSN 基礎(chǔ)之上的。其連接流程如圖2 所示。

3.3 LabSQL VIs 分類LabSQL VIs 按照功能可分為四類:Command VIs;Connection VIs;Recordset VIs;Top Level VIs。Command VIs 的功能是完成一系列的基本ADO 操作,例如,創(chuàng)建或刪除一個Command,對數(shù)據(jù)庫中的某一個參數(shù)進行讀或?qū)懙取onnection VIs 的功能是管理LabVIEW 與數(shù)據(jù)庫之間的連接。Recordset VIs 用于對數(shù)據(jù)庫中的記錄進行各種操作,例如,創(chuàng)建或刪除一條記錄,對記錄中的某一條目進行讀或?qū)懙?。Top Level VIs 屬于頂層的LabSQL 應(yīng)用,對前三類LabSQL VIs 某些功能的封裝,例如,SQL Execute.VIs 可用于直接執(zhí)行SQL 命令。

3.4 利用LabSQL 開發(fā)的基本步驟

利用LabSQL 在數(shù)據(jù)庫操作中可實現(xiàn)應(yīng)用程序與數(shù)據(jù)庫之間的數(shù)據(jù)交互傳遞。一般的簡單操作步驟如圖3 所示。

4 LabSQL 應(yīng)用實例

本應(yīng)用實例是基于VI 的隨動測試系統(tǒng),該測試系統(tǒng)需要對事先存儲的各測試點基本資料,標準值、上下限值進行讀取,然后與采集的數(shù)據(jù)值進行計算、判斷,并進行狀態(tài)記錄存儲和管理。其數(shù)據(jù)庫采用的是Microsoft Access 系統(tǒng),它的使用和維護較簡單,并且能夠滿足本系統(tǒng)的需要。限于篇幅,本文只對打開數(shù)據(jù)庫、查詢指定的記錄的字段值和向數(shù)據(jù)庫添加、刪除、修改記錄的實現(xiàn)方法作一下介紹,以起到拋磚引玉的作用。圖四即為筆者編寫的對數(shù)據(jù)庫進行簡單操作的框圖。

具體步驟如下:第一步:首先通過ADOCreate.vi 創(chuàng)建一個Connection對象,然后利用ADOConnection Open.vi 建立與數(shù)據(jù)庫的連接,數(shù)據(jù)庫由字符串ConnectionString“DSN=myDB”。(myDB 是一個在Windows ODBC 數(shù)據(jù)源中創(chuàng)建的一個DSN,并與想要連接的數(shù)據(jù)庫相連接。第二步:利用ADO RecordsetCreate.vi 創(chuàng)建一個Recordset 對象,然后利用ADO Recordset Open.vi 打開Recordset 對象,并同時利用SQL 查詢命令獲得數(shù)據(jù)庫表中的全部或部分記錄。第三步:通過功能選擇按鈕來選擇控制對數(shù)據(jù)庫的操作(查詢、添加、刪除、修改)。第四步:利用ADORecordset Close.vi 和ADO Connection Close.vi 關(guān)閉與數(shù)據(jù)庫之間的連接。 以上所舉的例子只是對數(shù)據(jù)庫的基本操作,如果綜合利用LabSQL 的四類VIs,就可以實現(xiàn)復(fù)雜的數(shù)據(jù)庫操作。另外注意Microsoft ADO 控件具有遠程數(shù)據(jù)庫訪問的功能,但是LabSQL 并沒有開發(fā)這一功能。

5 小結(jié)

實踐證明,在LabVIEW 利用LabSQL 數(shù)據(jù)庫訪問工具包實現(xiàn)對數(shù)據(jù)庫的訪問,比其它方式操作更簡潔,更容易理解,不用精通ActiveX 技術(shù)和SQL 語言。充分利用了現(xiàn)有的資源,就可以數(shù)據(jù)庫的實時操作,應(yīng)該是一個值得學(xué)習(xí)和推廣的方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64233

原文標題:輕松教你搞定數(shù)據(jù)庫應(yīng)用

文章出處:【微信號:gh_15eff9efd85b,微信公眾號:漫談labview學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)庫SQL Server 2008 R2版推出OSS版本數(shù)據(jù)上云

    通過外網(wǎng)遷移,則OSS會收取外網(wǎng)流出流量的費用。使用步驟也十分簡單,輕松三步搞定:一是準備好本地數(shù)據(jù)庫,二是將本地備份文件上傳到OSS并獲取文件的URL,三是將備份文件從OSS遷移至RDS,就可以
    發(fā)表于 01-17 11:10

    什么是支持數(shù)據(jù)庫,什么是中宏數(shù)據(jù)庫

    什么是支持數(shù)據(jù)庫 軟硬件系統(tǒng)是否需要數(shù)據(jù)庫支持,及所能支持的數(shù)據(jù)庫類型,如SQL,Oracle,exchange。 什
    發(fā)表于 06-17 08:09 ?1006次閱讀

    ch5 數(shù)據(jù)庫設(shè)計PPT

    該文集包含了數(shù)據(jù)庫的所有信息,您可以輕松的的學(xué)會創(chuàng)建數(shù)據(jù)庫系統(tǒng),他另外還有8個文檔。
    發(fā)表于 05-18 09:43 ?0次下載

    ch9數(shù)據(jù)庫設(shè)計實踐

    該文集包含了數(shù)據(jù)庫的所有信息,您可以輕松的的學(xué)會創(chuàng)建數(shù)據(jù)庫系統(tǒng),他另外還有8個文檔。
    發(fā)表于 05-18 09:43 ?0次下載

    Amazon RDS云數(shù)據(jù)庫的優(yōu)勢

    Amazon RDS 讓用戶能夠在云中輕松設(shè)置、操作和擴展 MariaDB 部署。借助 Amazon RDS,您可以在幾分鐘內(nèi)部署可擴展的 MariaDB 數(shù)據(jù)庫,不僅經(jīng)濟實惠,而且可以調(diào)節(jié)硬件能力
    發(fā)表于 10-13 16:51 ?0次下載

    數(shù)據(jù)庫教程之如何進行數(shù)據(jù)庫設(shè)計

    本文檔的主要內(nèi)容詳細介紹的是數(shù)據(jù)庫教程之如何進行數(shù)據(jù)庫設(shè)計內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計概述 ,2 數(shù)據(jù)庫需求分析 ,3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 ,4
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計

    數(shù)據(jù)庫和自建數(shù)據(jù)庫的區(qū)別及應(yīng)用

    數(shù)據(jù)庫是指優(yōu)化和部署在云端的數(shù)據(jù)庫,阿里云和騰訊云都提供云數(shù)據(jù)庫,云數(shù)據(jù)庫和自己搭建的數(shù)據(jù)庫有什么區(qū)別?有必要使用云
    的頭像 發(fā)表于 11-20 16:26 ?4559次閱讀
    云<b class='flag-5'>數(shù)據(jù)庫</b>和自建<b class='flag-5'>數(shù)據(jù)庫</b>的區(qū)別及應(yīng)用

    ACS數(shù)據(jù)庫與RSC數(shù)據(jù)庫比較研究

    ACS數(shù)據(jù)庫與RSC數(shù)據(jù)庫比較研究(開關(guān)電源技術(shù)與設(shè)計pdf百度云)-ACS數(shù)據(jù)庫與RSC數(shù)據(jù)庫比較研究? ? ? ? ? ? ? ? ?
    發(fā)表于 09-15 11:35 ?5次下載
    ACS<b class='flag-5'>數(shù)據(jù)庫</b>與RSC<b class='flag-5'>數(shù)據(jù)庫</b>比較研究

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】SQL SERVER數(shù)據(jù)庫MDF(NDF)或LDF損壞怎么恢復(fù)數(shù)據(jù)?

    基于MDF(或NDF)文件結(jié)構(gòu)使用北亞自主開發(fā)的“SQL SERVER數(shù)據(jù)庫檢測”軟件檢測數(shù)據(jù)庫內(nèi)部的邏輯結(jié)構(gòu),確定數(shù)據(jù)庫恢復(fù)的可能性。
    的頭像 發(fā)表于 11-16 11:52 ?1815次閱讀

    SQL Server數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

    未知原因?qū)е耂ql Server數(shù)據(jù)庫文件丟失,涉及到數(shù)個數(shù)據(jù)庫和數(shù)千張表,不能確定數(shù)據(jù)存儲位置。數(shù)據(jù)庫文件丟失后服務(wù)器仍然在開機運行,所幸沒有大量寫入
    的頭像 發(fā)表于 04-28 14:53 ?959次閱讀
    SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫建立|數(shù)據(jù)庫創(chuàng)建的方法?

    ,用于支持數(shù)據(jù)的管理、存儲和檢索。 手動創(chuàng)建數(shù)據(jù)庫 手動創(chuàng)建數(shù)據(jù)庫是最基本的方法。它需要創(chuàng)建一個新的數(shù)據(jù)庫文件,并指定數(shù)據(jù)庫的名稱、大小、存
    的頭像 發(fā)表于 07-14 11:15 ?1192次閱讀

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接 Python是一門高級編程語言,廣泛應(yīng)用于各種領(lǐng)域。其中,Python在
    的頭像 發(fā)表于 08-28 17:09 ?1727次閱讀

    sql怎么用代碼創(chuàng)建數(shù)據(jù)庫

    數(shù)據(jù)庫之前,您需要確定數(shù)據(jù)庫的名稱和使用的存儲引擎。存儲引擎是數(shù)據(jù)庫系統(tǒng)中用于存儲和檢索數(shù)據(jù)的組件。 以下是使用SQL代碼創(chuàng)建數(shù)據(jù)庫的步驟:
    的頭像 發(fā)表于 08-28 17:09 ?2694次閱讀

    mysql怎么新建一個數(shù)據(jù)庫

    : ``` CREATE DATABASE database_name [CHARACTER SET charset_name] [COLLATE collation_name]; ``` `CHARACTER SET`參數(shù)用于指定數(shù)據(jù)庫的字符集,`COLLATE`參數(shù)用于指定數(shù)
    的頭像 發(fā)表于 12-28 10:01 ?836次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

    一個運行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?93次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>