




已閱讀5頁(yè),還剩6頁(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ù)據(jù)庫(kù)連接本章內(nèi)容& 創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫(kù)& 創(chuàng)建表格模板& 創(chuàng)建記錄體& 對(duì)數(shù)據(jù)庫(kù)的操作& 數(shù)據(jù)集函數(shù)在關(guān)系庫(kù)中的應(yīng)用概述本章我們將講解如何將閥門(mén)的狀態(tài)變化記錄到數(shù)據(jù)庫(kù)中并進(jìn)行查詢。數(shù)據(jù)庫(kù)我們選擇Access數(shù)據(jù)庫(kù),記錄的內(nèi)容包括:日期、時(shí)間、閥門(mén)描述、閥門(mén)狀態(tài)四個(gè)字段。我們利用KingSCADA的SQL訪問(wèn)功能來(lái)實(shí)現(xiàn)。KingSCADA SQL訪問(wèn)功能實(shí)現(xiàn)KingSCADA和其他外部數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳輸。提供2種訪問(wèn)方式:一種是記錄體的方式,即變量和數(shù)據(jù)庫(kù)表中的字段建立綁定關(guān)系;一種是數(shù)據(jù)集方式。記錄體方式就是通過(guò)記錄體配置項(xiàng),實(shí)現(xiàn)把數(shù)據(jù)庫(kù)里面的字段和KingSCADA的變量建立綁定關(guān)系。綁定后,可以通過(guò)SQL插入或更新函數(shù)將綁定變量插入或更新到數(shù)據(jù)庫(kù)的對(duì)應(yīng)字段中;也可以通過(guò)SQL查詢函數(shù)將數(shù)據(jù)庫(kù)中對(duì)應(yīng)字段數(shù)據(jù)查詢并保存到綁定變量中,實(shí)現(xiàn)KingSCADA和關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)交互。記錄體方式只能在KingSCADA服務(wù)器端應(yīng)用。數(shù)據(jù)集方式就是通過(guò)KingSCADA提供的一系列數(shù)據(jù)集函數(shù),執(zhí)行標(biāo)準(zhǔn)SQL語(yǔ)句,實(shí)現(xiàn)KingSCADA與關(guān)系數(shù)據(jù)庫(kù)之間的增、查、刪、改等所有數(shù)據(jù)交互功能,尤其可以通過(guò)數(shù)據(jù)集函數(shù),實(shí)現(xiàn)從數(shù)據(jù)庫(kù)內(nèi)查詢出符合SQL語(yǔ)句的數(shù)據(jù)集合,并在報(bào)表、曲線中進(jìn)行批量數(shù)據(jù)展示。數(shù)據(jù)集方式支持在KingSCADA服務(wù)器端、C/S客戶端、WEB上使用。在這里建議采用數(shù)據(jù)集方式,更加方便、靈活。下面具體介紹2種方式的具體使用第一節(jié) 記錄體方式在關(guān)系數(shù)據(jù)庫(kù)中的應(yīng)用(僅參考)一、創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫(kù)以KingSCADA帶的DEMO工程中的mine.mdb數(shù)據(jù)庫(kù)為例,首先將mine.mdb文件從DEMO工程中拷貝到我們新建的這個(gè)培訓(xùn)工程中。然后,用Windows控制面板中自帶的ODBC Data Sources (32bit)管理工具新建一個(gè)Microsoft Access Driver(*.mdb)驅(qū)動(dòng)的數(shù)據(jù)源,名為:mine,然后配置該數(shù)據(jù)源,指向剛才拷貝過(guò)來(lái)的Access數(shù)據(jù)庫(kù)(即mydb.mdb),如圖8-1所示:圖8-1ODBC數(shù)據(jù)源的建立二、創(chuàng)建表及記錄體創(chuàng)建表用ACCESS打開(kāi)mine.mdb數(shù)據(jù)庫(kù),在庫(kù)中新建表“KingTable”,在表中建立三個(gè)字段日期時(shí)間、液位、溫度,如圖8-2所示:圖8-2在mine數(shù)據(jù)庫(kù)中創(chuàng)建表日期時(shí)間字段為日期時(shí)間類型。液位和溫度字段為數(shù)字類型,并都設(shè)置為單精度浮點(diǎn)型。創(chuàng)建記錄體記錄體是建立數(shù)據(jù)庫(kù)中數(shù)據(jù)表的字段和KingSCADA的變量之間的聯(lián)系。第一步:在KingSCADA工程設(shè)計(jì)器中選擇“通用數(shù)據(jù)源”“記錄體”選型,在右側(cè)內(nèi)容顯示區(qū)中單擊“新建”按鈕,彈出創(chuàng)建記錄體對(duì)話框,對(duì)話框設(shè)置如下:圖8-3創(chuàng)建記錄體對(duì)話框記錄體中定義了Access數(shù)據(jù)庫(kù)數(shù)據(jù)表字段與SCADA變量之間的對(duì)應(yīng)關(guān)系,對(duì)應(yīng)關(guān)系如下所示:Access數(shù)據(jù)庫(kù)表格字段SCADA變量日期時(shí)間local日期時(shí)間液位localliquid_level溫度localtemperature即:將KingSCADA中l(wèi)ocal日期時(shí)間變量值寫(xiě)到Access數(shù)據(jù)庫(kù)表格日期時(shí)間字段中;將localliquid_level值寫(xiě)到Access數(shù)據(jù)庫(kù)表格液位字段中;將localtemperature值寫(xiě)到Access數(shù)據(jù)庫(kù)表格溫度字段中。local日期時(shí)間=local$Date+“ ”+local$Time;,表示計(jì)算機(jī)系統(tǒng)當(dāng)前的日期和時(shí)間。第二步:?jiǎn)螕簟按_認(rèn)”按鈕完成記錄體的創(chuàng)建。注:記錄體中的字段名稱必須與表格模板中的字段名稱保持一致,記錄體中字段對(duì)應(yīng)的變量數(shù)據(jù)類型必須和表格模板中相同字段對(duì)應(yīng)的數(shù)據(jù)類型相同。三、對(duì)數(shù)據(jù)庫(kù)的操作1、連接數(shù)據(jù)庫(kù)第一步:在KingSCADA工程設(shè)計(jì)器的數(shù)據(jù)詞典中定義一個(gè)內(nèi)存整型變量變量名:DeviceID變量類型:內(nèi)存整型第二步:在畫(huà)面編輯器中新建一畫(huà)面,名稱為:數(shù)據(jù)庫(kù)操作,并在畫(huà)面上添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:數(shù)據(jù)庫(kù)連接“按鈕左鍵彈起”動(dòng)畫(huà)鏈接設(shè)置如下:圖8-4數(shù)據(jù)連接腳本程序上述腳本的作用是使SCADA與mine數(shù)據(jù)源建立了連接(即與mydb.mdb數(shù)據(jù)庫(kù)建立了連接)。在實(shí)際工程中將此命令寫(xiě)入:樹(shù)型目錄 腳本 系統(tǒng)腳本 應(yīng)用程序腳本應(yīng)用程序啟動(dòng)時(shí),即系統(tǒng)開(kāi)始運(yùn)行就連接到數(shù)據(jù)庫(kù)上。2、斷開(kāi)數(shù)據(jù)庫(kù)的連接在數(shù)據(jù)庫(kù)操作畫(huà)面中添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:斷開(kāi)連接“按鈕左鍵彈起”動(dòng)畫(huà)鏈接設(shè)置如下:圖8-5斷開(kāi)數(shù)據(jù)庫(kù)連接腳本程序在實(shí)際應(yīng)用中將此命令寫(xiě)入:樹(shù)型目錄 腳本 應(yīng)用程序腳本應(yīng)用程序關(guān)閉時(shí),即系統(tǒng)退出后斷開(kāi)與數(shù)據(jù)庫(kù)的連接。4、插入記錄我們要將液位和溫度定時(shí)記錄到數(shù)據(jù)庫(kù)中,因此利用定時(shí)器腳本編寫(xiě)腳本程序即可。新建一個(gè)定時(shí)器腳本“定時(shí)存儲(chǔ)”,每60000毫秒執(zhí)行一次,編寫(xiě)腳本程序如下:圖8-7插入記錄腳本程序上述腳本的作用是每分鐘在數(shù)據(jù)表KingTable中插入一條新的記錄。5、查詢記錄用戶如果需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)調(diào)入到KingSCADA中來(lái)顯示,需要另外建立一個(gè)記錄體,此記錄體的字段名稱要和數(shù)據(jù)庫(kù)表格中的字段名稱一致,連接的變量類型與數(shù)據(jù)庫(kù)中字段的類型一致,操作過(guò)程如下:第一步:在KingSCADA工程設(shè)計(jì)器的數(shù)據(jù)詞典中定義三個(gè)內(nèi)存變量:a、變量名:日期時(shí)間記錄變量類型:內(nèi)存字符串b、變量名:液位記錄變量類型:內(nèi)存實(shí)型c、變量名:溫度記錄變量類型:內(nèi)存實(shí)型第二步:在數(shù)據(jù)庫(kù)操作畫(huà)面上添加三個(gè)文本框,在文本框的“字符串輸出”動(dòng)畫(huà)中分別連接變量日期時(shí)間記錄、液位記錄、溫度記錄,用來(lái)顯示查詢出來(lái)的結(jié)果。第三步:在KingSCADA的通用數(shù)據(jù)源中定義一個(gè)記錄體,記錄體窗口屬性設(shè)置如圖8-8所示:圖8-8記錄體屬性設(shè)置對(duì)話框第四步:在畫(huà)面中添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:全部查詢“按鈕左鍵按下”動(dòng)畫(huà)鏈接設(shè)置如下:圖8-9記錄查詢腳本程序此腳本的作用是:以記錄體Bind2中定義的格式返回KingTable表格中第一條數(shù)據(jù)記錄。進(jìn)入運(yùn)行系統(tǒng),運(yùn)行此畫(huà)面,單擊“全部查詢”按鈕數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄顯示在文本框中。第五步:在畫(huà)面上添加四個(gè)按鈕,按鈕屬性設(shè)置如下:a、按鈕文本:第一條記錄“按鈕左鍵按下”動(dòng)畫(huà)鏈接:SQLFirst( DeviceID );b、按鈕文本:下一條記錄“按鈕左鍵按下”動(dòng)畫(huà)鏈接:SQLNext( DeviceID );c、按鈕文本:上一條記錄“按鈕左鍵按下”動(dòng)畫(huà)鏈接:SQLPrev( DeviceID );d、按鈕文本:最后一條記錄“按鈕左鍵按下”動(dòng)畫(huà)鏈接:SQLLast( DeviceID );上述腳本的作用分別為查詢數(shù)據(jù)中第一條記錄、下一條記錄、上一條記錄和最后一條記錄從而達(dá)到了數(shù)據(jù)查詢的目的。第二節(jié) 數(shù)據(jù)集函數(shù)在關(guān)系庫(kù)中的應(yīng)用(重點(diǎn)推薦)KingSCADA提供一系列數(shù)據(jù)集函數(shù),通過(guò)數(shù)據(jù)集函數(shù)使用標(biāo)準(zhǔn)SQL語(yǔ)句可以與關(guān)系數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互,下面舉例說(shuō)明通過(guò)數(shù)據(jù)集函數(shù)實(shí)現(xiàn)對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單的增、查、刪、改操作。以上面的mine.mdb數(shù)據(jù)庫(kù)中的KingTable表為例進(jìn)行實(shí)例說(shuō)明。1、 保存數(shù)據(jù)到關(guān)系庫(kù)假如系統(tǒng)要求每10秒鐘將液位和溫度記錄到數(shù)據(jù)庫(kù)中,那么我們可以在定時(shí)器腳本中實(shí)現(xiàn)。新建一個(gè)定時(shí)器腳本“定時(shí)存儲(chǔ)”,每10000毫秒執(zhí)行一次,編寫(xiě)腳本程序如下:圖8-10插入記錄腳本程序詳細(xì)腳本如下,作用是每分鐘在數(shù)據(jù)表KingTable中插入一條新的記錄。string ConnectStr,SqlCommand;/通過(guò)OLEDB方式連接ACCESS數(shù)據(jù)庫(kù)的連接字符串ConnectStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:培訓(xùn)培訓(xùn)工程培訓(xùn)工程mine.mdb;Persist Security Info=False;/將系統(tǒng)時(shí)間日期和時(shí)間合成一個(gè)包含日期和時(shí)間的字符串local日期時(shí)間記錄=local$Date+ +local$Time;/SQL語(yǔ)句,將日期時(shí)間、液位、溫度的數(shù)據(jù)值插入數(shù)據(jù)到數(shù)據(jù)庫(kù)的KingTable表中SqlCommand=insert into KingTable Values(+local日期時(shí)間記錄+,+localliquid_level+,+localtemperature+);/數(shù)據(jù)集函數(shù),執(zhí)行SQL語(yǔ)句KDBExecuteStatement(ConnectStr, SqlCommand);2、 查詢數(shù)據(jù)并顯示到報(bào)表在工程中新建畫(huà)面“數(shù)據(jù)集函數(shù)與關(guān)系庫(kù)”,在畫(huà)面上添加一個(gè)“查詢”按鈕,一個(gè)報(bào)表控件、兩個(gè)日期時(shí)間控件,如下圖所示。圖8-11數(shù)據(jù)集函數(shù)與關(guān)系庫(kù)畫(huà)面在查詢腳本里寫(xiě)如下腳本:string ConnectStr;string SqlStr;/通過(guò)OLEDB方式連接ACCESS數(shù)據(jù)庫(kù)的連接字符串ConnectStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:培訓(xùn)培訓(xùn)工程培訓(xùn)工程mine.mdb;Persist Security Info=False;/起始時(shí)間和結(jié)束時(shí)間從日期時(shí)間控件獲取string StartTime,EndTime;StartTime=UIDateTime1.Value;EndTime=UIDateTime2.Value;SqlStr=select 日期時(shí)間,液位,溫度 from KingTable where 日期時(shí)間=#+StartTime+#+ and 日期時(shí)間=#+StartTime+#+ and 日期時(shí)間=0;/Trace(SqlStr+SqlStr);/數(shù)據(jù)集函數(shù),執(zhí)行SQL語(yǔ)句,將溫度大于等于0的數(shù)據(jù)改
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車(chē)動(dòng)力系統(tǒng)的創(chuàng)新思路研究試題及答案
- 安全工程師在施工環(huán)境下的安全責(zé)任試題及答案
- 市場(chǎng)營(yíng)銷(xiāo)心理學(xué)在銷(xiāo)售中的應(yīng)用試題及答案
- 大學(xué)物理2025年學(xué)習(xí)習(xí)慣培養(yǎng)試題及答案
- 新疆克孜勒蘇柯?tīng)柨俗巫灾沃荼灸甓龋?025)小學(xué)一年級(jí)數(shù)學(xué)部編版質(zhì)量測(cè)試((上下)學(xué)期)試卷及答案
- 建筑施工安全責(zé)任制的考察題目及答案
- 土木結(jié)構(gòu)設(shè)計(jì)規(guī)范試題及答案
- 提升寫(xiě)作能力2025年商務(wù)英語(yǔ)考試試題及答案
- 安全工程師考試必考知識(shí)點(diǎn)試題及答案
- 小學(xué)教師教育教學(xué)反思與實(shí)踐應(yīng)用試題及答案
- 預(yù)防性侵害安全教育
- 人教版高中物理必修1第三章《彈力》
- 2025年四川成都錦江區(qū)初三第二次中考模擬語(yǔ)文試題含解析
- 十字相乘法解一元二次方程練習(xí)100題及答案
- 應(yīng)用化工技術(shù)專業(yè)培養(yǎng)調(diào)研報(bào)告
- 中國(guó)成人失眠診斷與治療指南(2023版)解讀
- 皮膚疾病超聲檢查指南(2022版)
- 停車(chē)場(chǎng)物業(yè)管理工作流程圖
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- (正式版)JBT 14582-2024 分戶減壓閥
- MOOC 大學(xué)英語(yǔ)聽(tīng)說(shuō)譯-河南理工大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論