康 懿
[摘要]隨著PowerBuilder的廣泛使用,針對其數(shù)據(jù)管道及其應用的問題,討論該技術(shù)的主要內(nèi)容。
[關(guān)鍵詞]PowerBuilder數(shù)據(jù)管道數(shù)據(jù)庫
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)1120052-01
數(shù)據(jù)管道是一種數(shù)據(jù)遷移工具。通過數(shù)據(jù)管道,應用程序能夠在不同的數(shù)據(jù)庫表之間移動數(shù)據(jù),也就是說,可以把一個或多個源表中的數(shù)據(jù)復制到新表或已存在的目的表中。數(shù)據(jù)管道產(chǎn)生的數(shù)據(jù)遷移可以在同一個數(shù)據(jù)庫中不同的表之間進行,也能夠在同一個數(shù)據(jù)庫管理系統(tǒng)的不同數(shù)據(jù)庫之間進行,甚至可以在不同數(shù)據(jù)庫管理系統(tǒng)的不同數(shù)據(jù)庫之間進行。
數(shù)據(jù)管道提供了在數(shù)據(jù)庫內(nèi)部、數(shù)據(jù)庫之間,甚至不同數(shù)據(jù)庫管理系統(tǒng)之間快速復制數(shù)據(jù)的簡便途徑。利用數(shù)據(jù)管道復制數(shù)據(jù)的過程稱之為灌入數(shù)據(jù)。
一、創(chuàng)建數(shù)據(jù)管道對象
數(shù)據(jù)管道是PowerBuilder提供的一個對象,它的使用方法有兩種:
(1)數(shù)據(jù)管道畫板創(chuàng)建數(shù)據(jù)管道對象,然后在數(shù)據(jù)管道畫板中運行數(shù)據(jù)管道對象。這種方式方便了開發(fā)人員開發(fā)和測試應用程序。
(2)用數(shù)據(jù)管道畫板創(chuàng)建并保存數(shù)據(jù)管道對象,用用戶對象畫板創(chuàng)建基于數(shù)據(jù)管道對象的用戶對象,編寫需要的事件處理程序,在代碼中運行管道。
無論哪種方法,使用之前都需要創(chuàng)建數(shù)據(jù)管道對象,創(chuàng)建數(shù)據(jù)管道對象時,需要確定下述選項:
1.源數(shù)據(jù)庫;
2.目的數(shù)據(jù)庫;
3.要從中復制數(shù)據(jù)的源表;
4.要存放數(shù)據(jù)的目的表;
5.要執(zhí)行的數(shù)據(jù)管道操作類型;
6.運行數(shù)據(jù)管道時事務提交的頻率;
7.允許出現(xiàn)的最多錯誤數(shù);
8.是否要把表的擴展屬性一起傳送到目的數(shù)據(jù)庫中。
二、數(shù)據(jù)管道出錯處理
在數(shù)據(jù)管道運行過程中,隨時可能因數(shù)據(jù)完整性等多種原因而產(chǎn)生錯誤,PowerBuilder自動把出錯的行顯示在出錯信息數(shù)據(jù)窗口中。數(shù)據(jù)管道的出錯信息數(shù)據(jù)窗口顯示了管道操作失敗行的所有列,并在數(shù)據(jù)窗口左部指出了出錯原因,這個數(shù)據(jù)窗口使用表格風格的顯示方式。
如果在數(shù)據(jù)管道執(zhí)行過程中達到了最大出錯個數(shù),管道的執(zhí)行就會自動停止,其后的數(shù)據(jù)無論正確與否都不會灌入目的數(shù)據(jù)庫中。要想把后面的數(shù)據(jù)灌入數(shù)據(jù)庫,只有兩種方法可行:修改數(shù)據(jù)管道的定義,或修改數(shù)據(jù)源的定義。修改之后重新運行數(shù)據(jù)管道。
三、數(shù)據(jù)管道的應用
如果想在應用程序中使用數(shù)據(jù)管道,一般必須創(chuàng)建下述對象:(1)創(chuàng)建數(shù)據(jù)管道對象;(2)創(chuàng)建一個繼承自Pipeline的標準類用戶對象;(3)創(chuàng)建一個窗口,在窗口上放置用于顯示數(shù)據(jù)管道運行過程中出錯信息的數(shù)據(jù)窗口控件。
在應用程序中使用數(shù)據(jù)管道的基本步驟如下:
1.用數(shù)據(jù)管道畫板創(chuàng)建數(shù)據(jù)管道對象。
2.用用戶對象畫板創(chuàng)建繼承自Pipeline的標準類用戶對象。
3.創(chuàng)建窗口,在窗口上放置一個數(shù)據(jù)窗口控件。
4.編寫代碼,依次實現(xiàn)下述操作:
(1)初始化事務對象并連接數(shù)據(jù)庫;
(2)創(chuàng)建標準類用戶對象實例;
(3)將數(shù)據(jù)管道對象與標準類用戶對象實例聯(lián)系起來;
(4)啟動數(shù)據(jù)管道。
5.處理行錯誤。
6.結(jié)束管道操作,清理前面創(chuàng)建的實例。
在實現(xiàn)上述任務過程中,需要使用數(shù)據(jù)管道對象的屬性、事件和函數(shù):
1.數(shù)據(jù)管道用戶對象的屬性
數(shù)據(jù)管道用戶對象的屬性共有五個,反映了當前使用的數(shù)據(jù)管道對象、語法、數(shù)據(jù)管道運行情況等信息。
2.數(shù)據(jù)管道的事件
數(shù)據(jù)管道有五個預定義事件,在創(chuàng)建數(shù)據(jù)管道用戶對象時,可以根據(jù)應用程序的需要定義自己的用戶事件。
3.數(shù)據(jù)管道的方法
數(shù)據(jù)管道對象有八個方法,其中ClassiName()、GetParent()、PostE
vent()、TriggerEvent()、TypeOf()與其他對象相應方法的意義相同,在此不再重復。而Start()方法將數(shù)據(jù)從源表傳送到目的表中,Cancel()方法將終止數(shù)據(jù)管道的執(zhí)行,Repair()方法將出錯修改結(jié)果傳送到目的數(shù)據(jù)庫。
四、小結(jié)
本文主要討論了PowerBuilder關(guān)于數(shù)據(jù)管道的功能,指出了如何創(chuàng)建數(shù)據(jù)管道對象,并詳細介紹了數(shù)據(jù)管道應用的基本步驟和方法。
參考文獻:
[1]徐松林等,PowerBuilder數(shù)據(jù)庫應用開發(fā)教程[M].北京:清華大學出版社.
[2]李春葆、曾平,Sql Server2000應用系統(tǒng)開發(fā)教程[M].北京:清華大學出版社.
[3]施伯樂、丁寶康、汪衛(wèi)編著,數(shù)據(jù)庫系統(tǒng)教程[M].北京:高等教育出版社.