PLC 工控機(jī) 嵌入式系統(tǒng) 人機(jī)界面 工業(yè)以太網(wǎng) 現(xiàn)場(chǎng)總線(xiàn) 變頻器 機(jī)器視覺(jué) DCS PAC/PLMC SCADA 工業(yè)軟件 ICS信息安全 應(yīng)用方案 無(wú)線(xiàn)通訊
紫金橋軟件技術(shù)有限公司
經(jīng)營(yíng)模式:生產(chǎn)廠(chǎng)家
商鋪產(chǎn)品:7條
所在地區(qū):黑龍江大慶市
聯(lián)系人:市場(chǎng)宣傳 (市場(chǎng)宣傳)
閱讀:703發(fā)布時(shí)間:2013-8-23
隨著控制系統(tǒng)功能的增強(qiáng)與多系統(tǒng)之間數(shù)據(jù)共享需求的增大,組態(tài)軟件與關(guān)系數(shù)據(jù)庫(kù)之間的通訊也愈加頻繁,二者之間的數(shù)據(jù)共享也變得越來(lái)越重要。隨著業(yè)務(wù)需求的逐漸增大,怎樣將復(fù)雜的通訊與功能實(shí)現(xiàn)簡(jiǎn)單化也成為了眾多商家的一個(gè)重要競(jìng)爭(zhēng)點(diǎn)。為方便廣大用戶(hù),紫金橋組態(tài)軟件特推出一新的功能組件——ObDataTable,通過(guò)該組件,用戶(hù)可以很簡(jiǎn)單的實(shí)現(xiàn)紫金橋組態(tài)軟件與關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)共享。組件ObDataTable作為中間媒介,將紫金橋組態(tài)軟件中的自由報(bào)表與關(guān)系數(shù)據(jù)庫(kù)按照一定的關(guān)系連接起來(lái)。
圖1 數(shù)據(jù)流向關(guān)系
對(duì)于一些復(fù)雜的綜合報(bào)表,報(bào)表中的數(shù)據(jù)來(lái)源或者去向并不統(tǒng)一。比如我們把數(shù)據(jù)劃分為好幾個(gè)區(qū)域,區(qū)域A中的數(shù)據(jù)要存儲(chǔ)到表A中,區(qū)域B中的數(shù)據(jù)要存儲(chǔ)到表B中等等。按照通常的方法,會(huì)通過(guò)紫金橋內(nèi)的SQL函數(shù)寫(xiě)一些腳本將數(shù)據(jù)存到關(guān)系庫(kù)中,但是這樣的方法比較復(fù)雜,且代碼量通常都比較大,編寫(xiě)起來(lái)比較麻煩,而現(xiàn)在通過(guò)組件ObDataTable將會(huì)把工作簡(jiǎn)單化,下面講解具體實(shí)現(xiàn)方法。
在講解實(shí)現(xiàn)方法時(shí),先介紹一下四個(gè)函數(shù):
1、 GetFromTable(),此為自由報(bào)表函數(shù),函數(shù)功能為從ObDataTable中獲得數(shù)據(jù)。
2、 SetToTable(),此為自由報(bào)表函數(shù),函數(shù)功能為將數(shù)據(jù)放置到ObDataTable中。
3、 SQLGetToTable(),此為紫金橋內(nèi)部SQL函數(shù),函數(shù)功能為將數(shù)據(jù)集中全部數(shù)據(jù)復(fù)制到ObDataTable中。
4、 SQLInsertFromTable(),此為紫金橋內(nèi)部SQL函數(shù),函數(shù)功能為將ObDataTable中數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。
圖2 報(bào)表區(qū)域劃分說(shuō)明
如上圖所示,該報(bào)表劃分為三個(gè)區(qū)域。首先,要在關(guān)系庫(kù)中建立三個(gè)表,分別為表A,表B,表C。按照?qǐng)?bào)表中三個(gè)區(qū)域的規(guī)格建立相應(yīng)的字段,注:關(guān)系庫(kù)表中的字段數(shù),類(lèi)型要與報(bào)表中的*對(duì)應(yīng)。
其次,編寫(xiě)數(shù)據(jù)存入與讀取腳本。在向關(guān)系庫(kù)插入數(shù)據(jù)時(shí)分為兩個(gè)步驟:
一、 將報(bào)表中的數(shù)據(jù)存入到ObDataTable中。期間調(diào)用函數(shù)報(bào)表函數(shù)SetToTable(),該函數(shù)能夠報(bào)表中的區(qū)域,如選擇的為區(qū)域A,函數(shù)執(zhí)行過(guò)后,區(qū)域A中的數(shù)據(jù)則會(huì)全部存入到ObDataTable中。如:#FreeReport1.SetToTable(1,1,7,10,#ObDataTable,0)。函數(shù)意為將自由報(bào)表FreeReport1的區(qū)域1至7列,1至10行的數(shù)據(jù)全部存入到ObDataTable中。
二、 將存入到ObDataTable中的數(shù)據(jù)寫(xiě)入到關(guān)系庫(kù)的表中。期間調(diào)用函數(shù)SQLInsertFromTable(),該函數(shù)執(zhí)行過(guò)后將會(huì)將ObDataTable中的數(shù)據(jù)寫(xiě)入到關(guān)系庫(kù)中相應(yīng)的表中。該函數(shù)執(zhí)行之前要調(diào)用SQLConnect()函數(shù)。如:
int ConnectID;
SQLConnect((ConnectID,”數(shù)據(jù)源描述”);
SQLInsertFromTable(ConnectID,"表A",#ObDataTable1);
其中ConnectID為執(zhí)行SQLConnect()之后的數(shù)據(jù)源表示返回值。數(shù)據(jù)源描述需要人為的填寫(xiě)。
這兩步操作之后,區(qū)域A中的數(shù)據(jù)則會(huì)全部寫(xiě)入到關(guān)系庫(kù)表A中。
從關(guān)系庫(kù)中讀取數(shù)據(jù)時(shí)同樣也分為兩個(gè)步驟:
一、 將關(guān)系庫(kù)表中的數(shù)據(jù)讀取到ObDataTable中。期間要調(diào)用函數(shù)SQLGetToTable(),該函數(shù)要與SQLSelect()函數(shù)配合使用。首先要將關(guān)系庫(kù)表中符合條件的數(shù)據(jù)通過(guò)SQLSelect()函數(shù)查出來(lái),在通過(guò)SQLGetToTable()函數(shù)寫(xiě)入到ObDataTable中。如:
int ConnectID;
SQLConnect((ConnectID,”數(shù)據(jù)源描述”);
SQLSelect(ConnectID,"表A","查詢(xún)條件表達(dá)式");
SQLGetToTable(#ObDataTable1);
二、 將ObDataTable中的數(shù)據(jù)寫(xiě)入到自由報(bào)表中。期間要調(diào)用自由報(bào)表函數(shù)GetFromTable(),該函數(shù)可以將ObDataTable中的數(shù)據(jù)寫(xiě)入到自由報(bào)表中的區(qū)域。
如:#FreeReport1.GetFromTable(1,1,#ObDataTable1,0);函數(shù)意為將ObDataTable中的數(shù)據(jù)寫(xiě)入到自由報(bào)表從*行,*列開(kāi)始的區(qū)域中。
這兩步操作過(guò)后,關(guān)系庫(kù)表A中符合查詢(xún)條件的數(shù)據(jù)則會(huì)寫(xiě)入到自由報(bào)表區(qū)域A中。區(qū)域B,區(qū)域C的同理。
ObDataTable的出現(xiàn),使紫金橋組態(tài)軟件與關(guān)系庫(kù)的通訊不在像以往那樣繁瑣,且功能實(shí)現(xiàn)簡(jiǎn)單,用戶(hù)通過(guò)少量的腳本即可實(shí)現(xiàn)預(yù)想的功能,避免了大量的編寫(xiě)腳本時(shí)存在的潛在錯(cuò)誤,方便廣大用戶(hù)操作使用。
商鋪:http://www.caslcampaign.com/st1318/
主營(yíng)產(chǎn)品:紫金橋,組態(tài)軟件,實(shí)時(shí)數(shù)據(jù)庫(kù),紫金橋監(jiān)控組態(tài)軟件,紫金橋實(shí)時(shí)數(shù)據(jù)庫(kù),紫金橋組態(tài)軟件,監(jiān)控組態(tài)軟件,洗煤廠(chǎng)監(jiān)控組態(tài),實(shí)時(shí)數(shù)據(jù)庫(kù),實(shí)時(shí)數(shù)據(jù)庫(kù)技術(shù)
智能制造網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡(jiǎn)單描述您的需求
請(qǐng)選擇省份