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