国产精品久久久久久久久软件,国产成人久久久精品二区三区,国产成人无码一区二区三区在线 ,大又大粗又爽又黄少妇毛片,国产精品成人aaaaa网站

首頁(yè) 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁(yè)
  P L C | 變頻器與傳動(dòng) | 傳感器 | 現(xiàn)場(chǎng)檢測(cè)儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動(dòng)控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場(chǎng)總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測(cè)控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺(jué)
紫金橋組態(tài)軟件基于內(nèi)置SQL查詢歷史數(shù)據(jù)的方法
紫金橋軟件技術(shù)有限公司
收藏本文     查看收藏

一、引言

 

  在項(xiàng)目中,經(jīng)常會(huì)涉及到查詢歷史數(shù)據(jù),通常情況下都是使用查詢歷史的專用組件,或者利用系統(tǒng)函數(shù)GetHisDataEx()以及相關(guān)的函數(shù)進(jìn)行查詢,但是上述兩種方法都有一定的局限性,現(xiàn)在紫金橋推出一種全新的查詢方法:基于內(nèi)置SQL查詢歷史數(shù)據(jù)的方法。

 

二、功能實(shí)現(xiàn)

 

  1.功能頁(yè)面布局

 

  首先,創(chuàng)建一個(gè)窗口,窗口中如下圖所示布局。放置兩個(gè)“起始時(shí)間”控件用來(lái)控制查詢歷史數(shù)據(jù)的時(shí)間范圍,分別命名為_(kāi)StartTime、_EndTime;放置一個(gè)“文本框”,用來(lái)輸入時(shí)間間隔,命名為_(kāi)INTERVAL;放置一個(gè)“按鈕”,用來(lái)控制查詢腳本;在下面放置一個(gè)“自由報(bào)表”,用來(lái)顯示已經(jīng)查詢出來(lái)的歷史數(shù)據(jù),命名為RPT_Data。并在窗口導(dǎo)航樹(shù)下選擇:畫(huà)面\查詢\內(nèi)置SQL查詢,新建一個(gè)查詢命名為ObSql1。

 

 

  2.腳本實(shí)現(xiàn)

 

  所有的腳本均寫(xiě)在查詢按鈕中,方法比較簡(jiǎn)單,首先要在設(shè)置時(shí)間范圍與時(shí)間間隔,然后在查詢按鈕中選擇所要查詢的數(shù)據(jù)點(diǎn),并按照設(shè)置的數(shù)據(jù)進(jìn)行查詢,最后將查詢到的數(shù)據(jù)放置到自由報(bào)表中。下面來(lái)分析查詢按鈕中的腳本。

 

ObHost Host1;

ObDataTable& ReturnTable;

string StrPar[];

string StrWhereCmd = ""; //Select查詢時(shí)的Where語(yǔ)句

string StrNameCmd = ""; //Select查詢時(shí)的Where語(yǔ)句中存放點(diǎn)名的字符串

string StrQuery = ""; //總的查詢語(yǔ)句

string StrTableText = ""; 

int i,j;

int nTagCount; //所要查詢數(shù)據(jù)點(diǎn)的個(gè)數(shù)

int nEveryTagCount; //每一個(gè)數(shù)據(jù)點(diǎn)返回歷史數(shù)據(jù)的個(gè)數(shù)

int nTableVal = 0;

 

  上述部分為定義的一些臨時(shí)變量,方便下面寫(xiě)程序時(shí)使用。

 

if  Host1.TagParSelMulti("",StrPar,-1) then

 

  If語(yǔ)句用來(lái)判斷是否在點(diǎn)選擇器中選擇了數(shù)據(jù)點(diǎn),如果選擇了點(diǎn),才會(huì)執(zhí)行下面的腳本

 

nTagCount = StrPar.GetCount();

for i = 0 to nTagCount-1 step 1

StrNameCmd = StrNameCmd + "'" + StrPar[i] + "',";

next

StrNameCmd = StrNameCmd + "'" + StrPar[nTagCount-1] + "'";

 

  上述語(yǔ)句是將在點(diǎn)選擇器中選擇的數(shù)據(jù)點(diǎn)按照SQL語(yǔ)句的形式拼接成字符串。

 

StrWhereCmd = "INTERVAL="+IntToStr(#_INTERVAL.Val*1000,10)+"";

StrWhereCmd = StrWhereCmd + " and DATETIME >= #"+#_StartTime.GetStringDateTime()+"#";

StrWhereCmd = StrWhereCmd + " AND DATETIME< #"+#_EndTime.GetStringDateTime()+"#";

StrWhereCmd = StrWhereCmd + " AND NAME IN ("+StrNameCmd+")";

 

  上述語(yǔ)句是拼寫(xiě)SQL查詢語(yǔ)句中的Where子句,其中第一句是設(shè)置時(shí)間間隔;第二句是設(shè)置查詢的其實(shí)時(shí)間;第三句是設(shè)置查詢的結(jié)束時(shí)間;第四句是設(shè)置所要查詢的歷史數(shù)據(jù)的數(shù)據(jù)點(diǎn)。

 

StrQuery = "SELECT Name,DATETIME,VALUE FROM HISDATA WHERE "+StrWhereCmd+"";

 

  上述語(yǔ)句是拼寫(xiě)整體的SQL查詢語(yǔ)句,按照Where字句中的設(shè)置信息,從歷史數(shù)據(jù)庫(kù)中查詢歷史數(shù)據(jù),并返回Name,DATETIME,VALUE三個(gè)字段的信息,這三個(gè)字段分別表示點(diǎn)名,歷史數(shù)據(jù)的時(shí)間和歷史數(shù)據(jù)。

 

#ObSql1.Connect("本地");

#ObSql1.Query(StrQuery,ReturnTable);

 

  上述語(yǔ)句是執(zhí)行SQL查詢,并將查詢到的結(jié)構(gòu)返回到通用數(shù)據(jù)表ReturnTable中。

 

nEveryTagCount = ReturnTable.GetRowCount()/nTagCount;

#RPT_Data.AddCol(nTagCount-1);

#RPT_Data.AddRow(nEveryTagCount-1);

 

  上述語(yǔ)句是按照查詢返回的數(shù)據(jù)個(gè)數(shù)及數(shù)據(jù)點(diǎn)的個(gè)數(shù),設(shè)置顯示報(bào)表的大小,在報(bào)表中增加相應(yīng)的列和行。

 

for i = 2 to #RPT_Data.RowCount() + 1 step 1

#RPT_Data.SetTxt(i,0,StrPar[i-2]); //設(shè)置表頭,內(nèi)容為點(diǎn)名

for j = 0 to nEveryTagCount step 1

ReturnTable.Get("VALUE",j,StrTableText);

#RPT_Data.SetTxt(i,j+1,StrTableText); //按照數(shù)據(jù)點(diǎn)向報(bào)表中放置查詢到的數(shù)據(jù)

if #RPT_Data.Txt(1,j+1) == "" then 

ReturnTable.Get("DATETIME",j,nTableVal);

#RPT_Data.SetVal(1,j+1,nTableVal); //向報(bào)表中放置歷史數(shù)據(jù)點(diǎn)時(shí)間,放置之前要 判斷時(shí)間是否已經(jīng)存在

endif

ReturnTable.RemoveRow(0);

next

next

endif

 

  上述語(yǔ)句是將查詢到的結(jié)果放置到顯示報(bào)表中。

 

  3.運(yùn)行效果

 

 

 

三、結(jié)束語(yǔ)

 

  通過(guò)該方式增加了查詢歷史數(shù)據(jù)隨意性,且加快了數(shù)據(jù)查詢的速度。同時(shí),查詢到的數(shù)據(jù)可以根據(jù)自身需要進(jìn)行多種形式的展示,方便數(shù)據(jù)的后期處理。


 

狀 態(tài): 離線

公司簡(jiǎn)介
產(chǎn)品目錄

公司名稱: 紫金橋軟件技術(shù)有限公司
聯(lián) 系 人: 李磊
電  話: 0459-8151391-808
傳  真: 0459-8151391-804
地  址: 大慶市高新區(qū)服務(wù)外包產(chǎn)業(yè)園C-1座817室
郵  編: 163316
主  頁(yè):
 
該廠商相關(guān)技術(shù)文摘:
跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù)變量引用導(dǎo)航功能介紹
跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù) 如何利用MODBUS仿真軟件測(cè)試MODBUS驅(qū)動(dòng)
紫金橋跨平臺(tái)實(shí)時(shí)數(shù)據(jù)庫(kù)如何實(shí)現(xiàn)多屏顯示
紫金橋跨平臺(tái)軟實(shí)時(shí)數(shù)據(jù)庫(kù)Web服務(wù)器和數(shù)據(jù)服務(wù)器分離訪問(wèn)的配置
紫金橋跨平臺(tái)軟件遠(yuǎn)程采集RealInfo6.5
使用虛擬機(jī)做的工程實(shí)現(xiàn)跨網(wǎng)Web訪問(wèn)
紫金橋軟件Microsoft Office Access 2003的ODBC數(shù)據(jù)源配置
紫金橋軟件閘門整體自動(dòng)化監(jiān)控系統(tǒng)
通過(guò)紫金橋軟件來(lái)提高畫(huà)面組態(tài)速度
組態(tài)軟件在配套設(shè)備中的應(yīng)用
紫金橋的關(guān)系庫(kù)同步工具簡(jiǎn)介
紫金橋組態(tài)軟件與歐姆龍PLC以太網(wǎng)通信(FINS命令)——CPU型號(hào)-CJ2M-CPU33
更多文摘...
立即發(fā)送詢問(wèn)信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員
請(qǐng)留下您的有效聯(lián)系方式,以方便我們及時(shí)與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動(dòng)態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報(bào)
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved