999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于KingView的SQL數(shù)據(jù)查詢設(shè)計(jì)

2014-03-08 09:22:15李鳳霞靳寶全王吉星
自動(dòng)化與儀表 2014年11期
關(guān)鍵詞:數(shù)據(jù)庫

楊 洋,李鳳霞,靳寶全,王吉星

(1.太原理工大學(xué) 電氣與動(dòng)力工程學(xué)院,太原 030024;2.太原理工大學(xué) 新型傳感器與智能控制教育部與山西省重點(diǎn)實(shí)驗(yàn)室,太原 030024)

工業(yè)控制系統(tǒng)中,為集中掌握現(xiàn)場設(shè)備運(yùn)行狀況,需對數(shù)據(jù)對象進(jìn)行實(shí)時(shí)存儲與查詢,因此,研究組態(tài)軟件與數(shù)據(jù)庫相結(jié)合的數(shù)據(jù)查詢技術(shù)具有重要意義[1]。早期工控系統(tǒng)中,利用程序語言將數(shù)據(jù)庫中數(shù)據(jù)從報(bào)表輸出,開發(fā)較為復(fù)雜。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,專家、學(xué)者設(shè)計(jì)組態(tài)軟件內(nèi)嵌數(shù)據(jù)庫技術(shù)應(yīng)用到各種工程項(xiàng)目中,王普等設(shè)計(jì)組態(tài)軟件與SQL Server數(shù)據(jù)庫結(jié)合管理歷史數(shù)據(jù),完成對現(xiàn)場的實(shí)時(shí)監(jiān)控[2];耿乙文等采用iFIX組態(tài)軟件與Access數(shù)據(jù)庫實(shí)現(xiàn)信息共享、報(bào)表制作[3]。

近年來,組態(tài)軟件與數(shù)據(jù)庫的連接、數(shù)據(jù)庫的實(shí)時(shí)訪問技術(shù)已獲得較大發(fā)展[4-6],但在對數(shù)據(jù)庫內(nèi)數(shù)據(jù)對象進(jìn)行即時(shí)調(diào)用并按時(shí)間順序進(jìn)行查詢的功能,仍需要進(jìn)一步研究開發(fā)。本文利用KingView組態(tài)軟件的時(shí)間、日期控件,結(jié)合數(shù)據(jù)庫內(nèi)嵌函數(shù),設(shè)計(jì)了基于KingView的SQL Server數(shù)據(jù)庫數(shù)據(jù)查詢方案,完成了數(shù)據(jù)庫中歷史數(shù)據(jù)對象在KingView中按時(shí)間順序的查詢,實(shí)現(xiàn)了對現(xiàn)場運(yùn)行狀態(tài)數(shù)字化、有序化監(jiān)測。

1 數(shù)據(jù)庫查詢功能概述

根據(jù)工控系統(tǒng)上位機(jī)軟件的設(shè)計(jì)要求,上位機(jī)需對關(guān)聯(lián)數(shù)據(jù)庫內(nèi)的歷史數(shù)據(jù)進(jìn)行合理的調(diào)用、顯示,但在編寫數(shù)據(jù)查詢語言時(shí)可能會出現(xiàn)查詢出來的數(shù)據(jù)不能按順序排列,即只按日期順序排列數(shù)據(jù)但時(shí)間順序混亂,或出現(xiàn)時(shí)間順序排序正常但日期排序混亂的問題,為解決這一問題,設(shè)計(jì)了綜合KingView時(shí)間、日期控件及SQL函數(shù)的數(shù)據(jù)查詢方案,通過對時(shí)間、日期條件的判斷及表格模板的調(diào)用,使數(shù)據(jù)庫數(shù)據(jù)按日期時(shí)間順序以報(bào)表形式有序輸出。

2 數(shù)據(jù)庫查詢設(shè)計(jì)方案

數(shù)據(jù)庫數(shù)據(jù)查詢設(shè)計(jì)方案如圖1所示。創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)源并連接到KingView,編寫查詢條件語句并調(diào)用報(bào)表,完成數(shù)據(jù)按日期、時(shí)間順序有序查詢。

圖1 數(shù)據(jù)庫數(shù)據(jù)查詢方案示意圖Fig.1 Schematic diagram of database query program

2.1 數(shù)據(jù)庫的建立與連接

KingView與SQL Server數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)傳輸時(shí),首先將SQL Server數(shù)據(jù)庫添加到ODBC數(shù)據(jù)源中,執(zhí)行如下腳本連接到名為“項(xiàng)目數(shù)據(jù)”的數(shù)據(jù)源,即可通過變量間接訪問數(shù)據(jù)庫:

SQLConnect(數(shù)據(jù)庫變量,"dsn=項(xiàng)目數(shù)據(jù);uid=;pwd=");

KingView中的變量和ODBC數(shù)據(jù)源之間的數(shù)據(jù)傳輸通過KingView的SQL訪問管理器實(shí)現(xiàn)。SQL訪問管理器包括表格模板和記錄體2部分。

表格模板是在數(shù)據(jù)庫中創(chuàng)建存儲報(bào)表的模板,也是數(shù)據(jù)報(bào)表輸出格式,通過如下腳本函數(shù)在數(shù)據(jù)庫中創(chuàng)建一個(gè)名為“表格名”的存儲表格:

SQLCreateTable(數(shù)據(jù)庫變量,"表格名","表格模板");

記錄體可關(guān)聯(lián)KingView中的多個(gè)變量,每執(zhí)行一次如下腳本函數(shù),即將一組“記錄體1”所關(guān)聯(lián)變量組存入數(shù)據(jù)庫的表格中:

SQLInsert(數(shù)據(jù)庫變量,"表格名","記錄體 1")。

以上命令語言為數(shù)據(jù)庫按時(shí)間順序查詢奠定了基礎(chǔ),使得KingView軟件開發(fā)平臺與數(shù)據(jù)庫通信正常連接。

2.2 按時(shí)間順序數(shù)據(jù)查詢的實(shí)現(xiàn)

在工業(yè)控制領(lǐng)域,要求能在歷史數(shù)據(jù)庫查詢?nèi)我鈺r(shí)間段內(nèi)的數(shù)據(jù),以便檢查現(xiàn)場工作情況。

2.2.1 查詢數(shù)據(jù)顯示區(qū)設(shè)置

在KingView中,在數(shù)據(jù)查詢畫面中插入通用控件KVADODBGrid class,在畫面內(nèi)拉出控件,在屬性選項(xiàng)中建立與SQL Server數(shù)據(jù)庫的連接,選擇前期新建的ODBC數(shù)據(jù)源(項(xiàng)目數(shù)據(jù))、數(shù)據(jù)庫及在數(shù)據(jù)庫內(nèi)創(chuàng)建的表格(表格名),選擇數(shù)據(jù)參數(shù)顯示表頭,數(shù)據(jù)居中,查詢超時(shí)設(shè)為100,并在索引表中將地址指針按順序排列,并按順序指向每條記錄體(每條記錄體按插入順序從上到下排列),如圖2所示,實(shí)現(xiàn)數(shù)據(jù)查詢按順序排列。

圖2 按時(shí)間順序排列原理Fig.2 Principle of chronological ordering

2.2.2 日期控件程序設(shè)計(jì)

在數(shù)據(jù)查詢畫面中,插入2個(gè)時(shí)間日期通用控件MicrosoftDateand TimePickerControl6.0(sp4),查詢開始時(shí)間 2 個(gè),分別為 DATE1、TIME1,查詢結(jié)束時(shí)間2個(gè),分別為DATE2、TIME2。DATA1、DATA2作為日期條件,屬性設(shè)置為1-dtpShort-Date。雙擊控件DATE1,在事件的closeup右側(cè)關(guān)聯(lián)函數(shù)端雙擊,函數(shù)聲明為closeup1(),并設(shè)計(jì)函數(shù)。

將DATE1控件輸入的年月日整數(shù)轉(zhuǎn)化為字符串形式作為查詢開始條件,與數(shù)據(jù)庫表格中的時(shí)間比較,并從數(shù)據(jù)庫表格中與DATE1輸入時(shí)間相同的位置開始輸出,同時(shí)要把所有轉(zhuǎn)化字符串的格式進(jìn)行統(tǒng)一格式轉(zhuǎn)換,并調(diào)整上位機(jī)的時(shí)間格式與此格式保持一致,否則函數(shù)無法從數(shù)據(jù)庫內(nèi)調(diào)用數(shù)據(jù)。控件closeup1()函數(shù)設(shè)計(jì)流程框架如圖3所示。

圖3 日期控件程序設(shè)計(jì)流程圖Fig.3 Flow chart of date control procedures

DATA2控件函數(shù)聲明為closeup2(),作為日期查詢結(jié)束條件,數(shù)據(jù)庫表格輸出的數(shù)據(jù)到輸入日期結(jié)束,函數(shù)設(shè)計(jì)方法與closeup1()相同。

2.2.3 時(shí)間控件程序設(shè)計(jì)

TIME1、TIME2控件屬性設(shè)置為 2-dtptime,雙擊控件,選擇事件,點(diǎn)擊change后的關(guān)聯(lián)內(nèi)容,函數(shù)分別聲明為 change1()、change2()。

函數(shù) change1()、change2()作為查詢時(shí)間開始條件、結(jié)束條件,程序設(shè)計(jì)流程與closeup1()大致相同:定義長整形變量,將控件中的變量值賦給對應(yīng)的長整形變量,統(tǒng)一數(shù)據(jù)庫內(nèi)時(shí)間格式與上位機(jī)中的時(shí)間格式,通過控件讀出輸入時(shí)間(輸入時(shí)間格式為:時(shí):分:秒),即完成在KingView中時(shí)間賦值。

2.2.4 查詢按鈕的程序設(shè)計(jì)

查詢按鈕設(shè)計(jì)時(shí),因?yàn)榍捌跁r(shí)間格式都是字符串格式,字符串沒有比較大小的功能,想要查詢一段時(shí)間內(nèi)的數(shù)據(jù),必須把字符串格式的時(shí)間轉(zhuǎn)化為長整形。在KingView界面內(nèi),新建一個(gè)按鈕,雙擊按鈕,選擇按下時(shí)執(zhí)行程序,查詢按鈕程序設(shè)計(jì)流程如圖4所示,將時(shí)間開始條件與日期開始條件組成總開始條件,時(shí)間結(jié)束條件與日期結(jié)束條件組成總結(jié)束條件,比較結(jié)果正確后,將總開始時(shí)間與總結(jié)束時(shí)間組成綜合查詢時(shí)間作為輸出條件并按時(shí)間順序輸出數(shù)據(jù)報(bào)表。

圖4 查詢按鈕程序設(shè)計(jì)流程圖Fig.4 Flow chart of query button programming

3 數(shù)據(jù)查詢結(jié)果

在設(shè)計(jì)完成的控件中,開始時(shí)間設(shè)定為2014-07-18、11:21:40,結(jié)束時(shí)間設(shè)定為 2014-07-18、11:22:40,點(diǎn)擊查詢按鈕,報(bào)表輸出結(jié)果如表1所示??梢姖M足查詢條件的數(shù)據(jù)全部顯示并按時(shí)間順序從早到晚依次排列,查詢數(shù)據(jù)以3路流量(流量A1、流量B1、流量C1)為例,但由于新建數(shù)據(jù)庫中變量未連接設(shè)備寄存器,所以數(shù)據(jù)顯示均為0。

表1 數(shù)據(jù)查詢結(jié)果Tab.1 Data query results

4 幾種數(shù)據(jù)查詢方法的比較

4.1 KVADODBGrid控件簡單查詢方法

使用KVADODBGrid控件查詢方法簡單,容易被設(shè)計(jì)人員開發(fā)使用,但不適合現(xiàn)有工業(yè)技術(shù)領(lǐng)域應(yīng)用,此種方法開發(fā)的查詢功能操作步驟繁瑣,且不易觀察歷史數(shù)據(jù),只可查詢?nèi)繑?shù)據(jù)信息,且沒有篩選數(shù)據(jù)的功能,使用靈活度差。

4.2 內(nèi)嵌SQL函數(shù)查詢方法

利用SQL函數(shù)查詢方法基本能滿足用戶的各種要求,單一使用SQL函數(shù),不易開發(fā)數(shù)據(jù)查詢功能,一般借助報(bào)表窗口控件,設(shè)計(jì)開發(fā)程序較為繁瑣,容易出現(xiàn)錯(cuò)誤,對工程技術(shù)開發(fā)人員要求極高,不易掌握,靈活度相對上一方法較好,程序過程復(fù)雜。開發(fā)的軟件對硬件要求很高,且在運(yùn)行過程中容易造成死機(jī)現(xiàn)象。

4.3 設(shè)計(jì)方案特點(diǎn)

充分利用KingView內(nèi)的控件、內(nèi)嵌SQL函數(shù),開發(fā)了靈活方便、適用性強(qiáng)的數(shù)據(jù)查詢功能,滿足工控領(lǐng)域?qū)?shù)據(jù)查詢的各種要求,軟件開發(fā)難度適中,對工程開發(fā)人員要求合適,且開發(fā)技術(shù)容易掌握。開發(fā)的數(shù)據(jù)查詢軟件操作簡單靈活,容易理解。

5 結(jié)語

主要利用KingView時(shí)間日期控件并結(jié)合SQL內(nèi)嵌函數(shù),設(shè)計(jì)了數(shù)據(jù)庫數(shù)據(jù)報(bào)表調(diào)用查詢方案,并完成了查詢結(jié)果按時(shí)間順序有序排列。該方案設(shè)計(jì)方法簡單,工作可靠,使用戶可以方便地訪問和管理數(shù)據(jù)庫,實(shí)時(shí)掌握系統(tǒng)運(yùn)行參數(shù),優(yōu)化了工控系統(tǒng)性能。

[1] 楊立保,許忠仁.組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫的研究與設(shè)計(jì)[J].自動(dòng)化儀表,2009,30(8):19-21.

[2] 王普,郭繼業(yè),孫崇正,等.基于SQL Server 2000的組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫[J].北京工業(yè)大學(xué)學(xué)報(bào),2006,32(3):197-201.

[3] 耿乙文,伍小杰.基于ODBC技術(shù)實(shí)現(xiàn)iFIX組態(tài)軟件與關(guān)系數(shù)據(jù)庫 Access的通信[J].工礦自動(dòng)化,2006(4):30-32.

[4] 趙秀梅.基于WINCC工控組態(tài)軟件的關(guān)系數(shù)據(jù)庫的研究[J].微型機(jī)與應(yīng)用,2010(6):1-2,6.

[5] 陳慧,王中慶.基于ADO的組態(tài)軟件與關(guān)系數(shù)據(jù)庫通信研究[J].工業(yè)控制計(jì)算機(jī),2012,25(4):74-75.

[6] 孫淳.基于OPC技術(shù)的組態(tài)軟件與SQL Server數(shù)據(jù)庫的通信研究[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(5):143-146. ■

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 国产激爽爽爽大片在线观看| 欧美日韩亚洲国产| 亚洲V日韩V无码一区二区| 国产成年女人特黄特色大片免费| 国产精品第5页| av在线无码浏览| 亚洲精品在线91| 国产精品一线天| AV无码一区二区三区四区| 成人自拍视频在线观看| 热re99久久精品国99热| 天堂岛国av无码免费无禁网站| 天堂av综合网| 亚洲欧美精品在线| 97国产精品视频自在拍| 中文天堂在线视频| 亚洲综合香蕉| 国产在线观看一区二区三区| 欧美国产日韩一区二区三区精品影视| 在线看片中文字幕| 日韩不卡高清视频| 黄色国产在线| 精品欧美视频| 国产精品私拍在线爆乳| 国产久草视频| 国产精品亚欧美一区二区| 国产农村1级毛片| 亚洲欧美极品| 高清不卡毛片| 伊人激情久久综合中文字幕| 成人精品视频一区二区在线| 国产不卡国语在线| 亚洲男人天堂久久| 国产第一页亚洲| 成人一级黄色毛片| 黄色网站在线观看无码| 99精品国产高清一区二区| 国产网友愉拍精品| 亚洲娇小与黑人巨大交| 国产精品手机在线播放| 国产中文在线亚洲精品官网| 亚洲av无码专区久久蜜芽| 成人午夜久久| 国产最爽的乱婬视频国语对白| 日韩欧美国产三级| 亚洲精品福利视频| 亚洲综合极品香蕉久久网| 欧美综合区自拍亚洲综合天堂| AV不卡国产在线观看| 国产精品亚洲专区一区| 天堂va亚洲va欧美va国产 | 亚洲第一区欧美国产综合| 无码AV高清毛片中国一级毛片| 欧美一级一级做性视频| 无码综合天天久久综合网| 亚洲不卡影院| 国产毛片网站| 国产丰满大乳无码免费播放| 国产91导航| 欧美日韩专区| 久久午夜夜伦鲁鲁片无码免费| 无码人中文字幕| 青青草综合网| 亚洲中文字幕国产av| 日本午夜三级| 中文字幕在线免费看| 中字无码av在线电影| 久久综合激情网| 亚洲中文精品人人永久免费| 青青热久麻豆精品视频在线观看| 国产嫖妓91东北老熟女久久一| 乱系列中文字幕在线视频 | 国产高潮流白浆视频| 亚洲成人高清在线观看| 国产精品网址你懂的| 国产乱人伦AV在线A| 永久毛片在线播| 91久久夜色精品| 666精品国产精品亚洲| 刘亦菲一区二区在线观看| 91小视频在线观看| 精品1区2区3区|