<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        首頁 | 培訓研討 | 公司簡介 | 聯系方式 | 公司動態 | 產品 | 應用實例 | 下載 | 文摘 | 誠聘 |
        紫金橋組態軟件基于內置SQL查詢歷史數據的方法

        紫金橋軟件技術有限公司
        收藏本文     查看收藏

        一、引言

         

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

         

        二、功能實現

         

          1.功能頁面布局

         

          首先,創建一個窗口,窗口中如下圖所示布局。放置兩個“起始時間”控件用來控制查詢歷史數據的時間范圍,分別命名為_StartTime、_EndTime;放置一個“文本框”,用來輸入時間間隔,命名為_INTERVAL;放置一個“按鈕”,用來控制查詢腳本;在下面放置一個“自由報表”,用來顯示已經查詢出來的歷史數據,命名為RPT_Data。并在窗口導航樹下選擇:畫面\查詢\內置SQL查詢,新建一個查詢命名為ObSql1。

         

         

          2.腳本實現

         

          所有的腳本均寫在查詢按鈕中,方法比較簡單,首先要在設置時間范圍與時間間隔,然后在查詢按鈕中選擇所要查詢的數據點,并按照設置的數據進行查詢,最后將查詢到的數據放置到自由報表中。下面來分析查詢按鈕中的腳本。

         

        ObHost Host1;

        ObDataTable& ReturnTable;

        string StrPar[];

        string StrWhereCmd = ""; //Select查詢時的Where語句

        string StrNameCmd = ""; //Select查詢時的Where語句中存放點名的字符串

        string StrQuery = ""; //總的查詢語句

        string StrTableText = ""; 

        int i,j;

        int nTagCount; //所要查詢數據點的個數

        int nEveryTagCount; //每一個數據點返回歷史數據的個數

        int nTableVal = 0;

         

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

         

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

         

          If語句用來判斷是否在點選擇器中選擇了數據點,如果選擇了點,才會執行下面的腳本

         

        nTagCount = StrPar.GetCount();

        for i = 0 to nTagCount-1 step 1

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

        next

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

         

          上述語句是將在點選擇器中選擇的數據點按照SQL語句的形式拼接成字符串。

         

        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+")";

         

          上述語句是拼寫SQL查詢語句中的Where子句,其中第一句是設置時間間隔;第二句是設置查詢的其實時間;第三句是設置查詢的結束時間;第四句是設置所要查詢的歷史數據的數據點。

         

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

         

          上述語句是拼寫整體的SQL查詢語句,按照Where字句中的設置信息,從歷史數據庫中查詢歷史數據,并返回Name,DATETIME,VALUE三個字段的信息,這三個字段分別表示點名,歷史數據的時間和歷史數據。

         

        #ObSql1.Connect("本地");

        #ObSql1.Query(StrQuery,ReturnTable);

         

          上述語句是執行SQL查詢,并將查詢到的結構返回到通用數據表ReturnTable中。

         

        nEveryTagCount = ReturnTable.GetRowCount()/nTagCount;

        #RPT_Data.AddCol(nTagCount-1);

        #RPT_Data.AddRow(nEveryTagCount-1);

         

          上述語句是按照查詢返回的數據個數及數據點的個數,設置顯示報表的大小,在報表中增加相應的列和行。

         

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

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

        for j = 0 to nEveryTagCount step 1

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

        #RPT_Data.SetTxt(i,j+1,StrTableText); //按照數據點向報表中放置查詢到的數據

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

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

        #RPT_Data.SetVal(1,j+1,nTableVal); //向報表中放置歷史數據點時間,放置之前要 判斷時間是否已經存在

        endif

        ReturnTable.RemoveRow(0);

        next

        next

        endif

         

          上述語句是將查詢到的結果放置到顯示報表中。

         

          3.運行效果

         

         

         

        三、結束語

         

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


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 紫金橋軟件技術有限公司
        聯 系 人: 李磊
        電  話: 0459-8151391-808
        傳  真: 0459-8151391-804
        地  址: 大慶市高新區服務外包產業園C-1座817室
        郵  編: 163316
        主  頁:
         
        紫金橋軟件相關文摘:
        跨平臺實時數據庫變量引用導航功能介紹
        跨平臺實時數據庫 如何利用MODBUS仿真軟件測試MODBUS驅動
        紫金橋跨平臺實時數據庫如何實現多屏顯示
        紫金橋跨平臺軟實時數據庫Web服務器和數據服務器分離訪問的配置
        紫金橋跨平臺軟件遠程采集RealInfo6.5
        使用虛擬機做的工程實現跨網Web訪問
        紫金橋軟件Microsoft Office Access 2003的ODBC數據源配置
        紫金橋軟件閘門整體自動化監控系統
        通過紫金橋軟件來提高畫面組態速度
        組態軟件在配套設備中的應用
        紫金橋的關系庫同步工具簡介
        紫金橋組態軟件與歐姆龍PLC以太網通信(FINS命令)——CPU型號-CJ2M-CPU33
        更多紫金橋軟件文摘...
        通過中華工控網在線留言紫金橋軟件技術有限公司:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡
         
        中華工控網 GKong.com制作發布 廣告聯系
        主站蜘蛛池模板: 一本到综在合线伊人| 大桥未久亚洲无av码在线| 中文字幕久久国产精品| 久久99精品久久久大学生| 欧美乱大交aaaa片if| 加勒比中文字幕无码一区| 色吊丝二区三区中文字幕| 久久中文字幕av第二页| 国产另类ts人妖一区二区| 99热精品国产三级在线观看| 久久人妻国产精品| 国产成人亚洲综合色婷婷秒播| 中文字幕av熟女人妻| 99久久婷婷国产综合精品青草漫画| 三级黄片一区二区三区| 少妇粗大进出白浆嘿嘿视频| 日本高清视频网站www| 99久久无码一区人妻a黑| 色狠狠色婷婷丁香五月| 亚洲精品成人7777在线观看 | 国产精品一区二区三区卡| 美女视频黄频大全视频| 午夜精品福利亚洲国产| 四虎成人免费视频在线播放| 国产亚洲精品欧洲在线视频| 亚洲色婷婷综合开心网| 亚洲一区二区三区高清在线观看| 手机看片日本在线观看视频| 蜜桃av噜噜一区二区三区香| 欧美日韩精品一区二区三区高清视频 | 精品在免费线中文字幕久久| 国产麻豆精品手机在线观看| 日本丰满少妇高潮呻吟| 又大又紧又粉嫩18p少妇| 成人亚洲狠狠一二三四区| 国产最新进精品视频| 无码成人午夜在线观看| 午夜免费无码福利视频麻豆| 国产精品亚洲二区在线播放| 护士被两个病人伦奷日出白浆| 中文字幕理伦午夜福利片|