當前位置:自動化網>紫金橋軟件技術有限公司門戶>應用案例>紫金橋組態軟件與關系數據庫之間數據存儲與調取的應用

          紫金橋組態軟件與關系數據庫之間數據存儲與調取的應用

          發布時間:2013-08-02 14:21   類型:技術前沿   人瀏覽

               隨著控制系統功能的增強與多系統之間數據共享需求的增大,組態軟件與關系數據庫之間的通訊也愈加頻繁,二者之間的數據共享也變得越來越重要。隨著業務需求的逐漸增大,怎樣將復雜的通訊與功能實現簡單化也成為了眾多商家的一個重要競爭點。為方便廣大用戶,紫金橋組態軟件特推出一新的功能組件——ObDataTable,通過該組件,用戶可以很簡單的實現紫金橋組態軟件與關系數據庫的數據共享。組件ObDataTable作為中間媒介,將紫金橋組態軟件中的自由報表與關系數據庫按照一定的關系連接起來。
           
                                                           圖1 數據流向關系
                對于一些復雜的綜合報表,報表中的數據來源或者去向并不統一。比如我們把數據劃分為好幾個區域,區域A中的數據要存儲到表A中,區域B中的數據要存儲到表B中等等。按照通常的方法,會通過紫金橋內的SQL函數寫一些腳本將數據存到關系庫中,但是這樣的方法比較復雜,且代碼量通常都比較大,編寫起來比較麻煩,而現在通過組件ObDataTable將會把工作簡單化,下面講解具體實現方法。
          在講解實現方法時,先介紹一下四個函數:
          1、GetFromTable(),此為自由報表函數,函數功能為從ObDataTable中獲得數據。
          2、SetToTable(),此為自由報表函數,函數功能為將數據放置到ObDataTable中。
          3、SQLGetToTable(),此為紫金橋內部SQL函數,函數功能為將數據集中全部數據復制到ObDataTable中。
          4、SQLInsertFromTable(),此為紫金橋內部SQL函數,函數功能為將ObDataTable中數據插入到數據庫中.

                                                        圖2 報表區域劃分說明
          如上圖所示,該報表劃分為三個區域。首先,要在關系庫中建立三個表,分別為表A,表B,表C。按照報表中三個區域的規格建立相應的字段,注:關系庫表中的字段數,類型要與報表中的完全對應。
          其次,編寫數據存入與讀取腳本。在向關系庫插入數據時分為兩個步驟:
          一、將報表中的數據存入到ObDataTable中。期間調用函數報表函數SetToTable(),該函數能夠指定報表中的區域,如選擇的為區域A,函數執行過后,區域A中的數據則會全部存入到ObDataTable中。如:#FreeReport1.SetToTable(1,1,7,10,#ObDataTable,0)。函數意為將自由報表FreeReport1的區域1至7列,1至10行的數據全部存入到ObDataTable中。
          二、將存入到ObDataTable中的數據寫入到關系庫的表中。期間調用函數SQLInsertFromTable(),該函數執行過后將會將ObDataTable中的數據寫入到關系庫中相應的表中。該函數執行之前要調用SQLConnect()函數。如:
          int ConnectID;
          SQLConnect((ConnectID,”數據源描述”);
          SQLInsertFromTable(ConnectID,"表A",#ObDataTable1);
          其中ConnectID為執行SQLConnect()之后的數據源表示返回值。數據源描述需要人為的填寫。
          這兩步操作之后,區域A中的數據則會全部寫入到關系庫表A中。
          從關系庫中讀取數據時同樣也分為兩個步驟:
          一、將關系庫表中的數據讀取到ObDataTable中。期間要調用函數SQLGetToTable(),該函數要與SQLSelect()函數配合使用。首先要將關系庫表中符合條件的數據通過SQLSelect()函數查出來,在通過SQLGetToTable()函數寫入到ObDataTable中。如:
          int ConnectID;
          SQLConnect((ConnectID,”數據源描述”);
          SQLSelect(ConnectID,"表A","查詢條件表達式");
          SQLGetToTable(#ObDataTable1);
          二、將ObDataTable中的數據寫入到自由報表中。期間要調用自由報表函數GetFromTable(),該函數可以將ObDataTable中的數據寫入到自由報表中指定的區域。
          如:#FreeReport1.GetFromTable(1,1,#ObDataTable1,0);函數意為將ObDataTable中的數據寫入到自由報表從第一行,第一列開始的區域中。
          這兩步操作過后,關系庫表A中符合查詢條件的數據則會寫入到自由報表區域A中。區域B,區域C的同理。
                ObDataTable的出現,使紫金橋組態軟件與關系庫的通訊不在像以往那樣繁瑣,且功能實現簡單,用戶通過少量的腳本即可實現預想的功能,避免了大量的編寫腳本時存在的潛在錯誤,方便廣大用戶操作使用。
           

          本文地址:http://m.xznet110.com/apply/d_1nrutga2l2ka9_1.html

          拷貝地址

          版權聲明:版權歸中國自動化網所有,轉載請注明出處!

          留言反饋
          • 評價:

          • 關于:

          • 聯系人:

          • 聯系電話:

          • 聯系郵箱:

          • 需求意向:

          • 驗證碼:

            看不清楚?

          X
          下載企業APP

          成為企業會員免費生成APP!

          主站蜘蛛池模板: 中文无码字幕中文有码字幕| 国产自无码视频在线观看| 八戒网站免费观看视频| 一个人看的视频www在线| 欧美77777| 国产一级一级一级国产片| 884aa四虎在线| 最新69国产成人精品免费视频动漫| 免费中文字幕乱码电影麻豆网| 香蕉久久综合精品首页| 国产羞羞视频在线观看| 一本到在线观看视频| 日韩小视频在线| 亚洲日韩精品一区二区三区| 高清中国一级毛片免费| 成人午夜视频网站| 五十路六十路绝顶交尾| 激情综合色五月六月婷婷| 国产理论视频在线观看| japanese六十路| 无码人妻精品一区二区三区蜜桃 | 欧美色图你懂的| 国产成人欧美一区二区三区| 中文字幕在线视频网| 欧洲精品无码一区二区三区在线播放| 伊人狠狠色丁香综合尤物| 色妞色视频一区二区三区四区| 天天av天天翘天天综合网| 亚洲jizzjizz中国少妇中文| 特级按摩一级毛片| 国产h视频在线观看| 99在线精品免费视频| 成年美女黄网站色大片免费看| 亚洲精品视频在线观看免费| 99视频精品国在线视频艾草| 成人看片app| 久激情内射婷内射蜜桃| 欧美性视频在线播放黑人| 人妻少妇久久中文字幕| 91chinese在线| 国产精品综合视频|