隨著網路的延伸和資訊系統的不斷開發,系統整合面臨著如何將分布在不同伺服器上的資料庫系統整合到一起的問題。某個客戶應用可能需要在同一視窗同時訪問兩個伺服器上的兩個不同種資料庫,powerbuilder為這種需求提供了令人滿意的解決方案。
powerbuilder 4.0是一套強大的資料庫應用系統開發工具,它具有完整的客戶/伺服器體系結構、物件導向的應用程式開發方法以及視覺化的開發環境,因而成為近幾年流行的資料庫前端開發工具。
隨著網路的延伸和資訊系統的不斷開發,系統整合面臨著如何將分布在不同伺服器上的資料庫系統整合到一起的問題。某個客戶應用可能需要在同一視窗同時訪問兩個伺服器上的兩個不同種資料庫,powerbuilder為這種需求提供了令人滿意的解決方案。
方案一: 通過transaction object同時開啟多個事務,再通過多個事務訪問建立在不同資料庫上的datawindows。
方案二: 通過資料管道(datapipeline)將其它資料庫上基表中的資料傳送到主資料庫上,對資料管道還可加上過濾條件,以便只傳送需要的資料。
具體實現方案
本文在乙個視窗上的兩個按鈕具體顯示方案一和方案二。在這個視窗中的三個事件指令碼(scripts)如下:
(1)開啟視窗事件指令碼(open for w_lc)
transaction lc_oracle,lc_ingres
∥初始化oracle資料庫事務
lc_oracle=create transaction
lc_oracle.dbms ="or7 oracle v7.x"
lc_oracle.database ="ora7"
lc_oracle.logid ="ljb"
lc_oracle.logpassword ="ljbljb"
lc_oracle.servername ="@t:132.147.111.8" ∥初始化ingres資料庫事務
lc_ingres=create transaction
lc_ingres.dbms ="odbc"
lc_ingres.database ="xxzx2"
lc_ingres.userid ="nt"
lc_ingres.dbpass ="ingres"
lc_ingres.dbparm ="connectstring='dsn=kfml;&
srvr=nt;db=xxzx2;opts=;uid=ingres'"
(2)同時訪問兩個資料庫的指令碼(clicked for cb_mutidbms) ∥訪問 oracle資料庫
connect using lc_oracle;
dw_oracle.settrans(lc_oracle)
dw_oracle.retrieve()
∥訪問ingres資料庫
connect using lc_ingres;
dw_ingres.settrans(lc_ingres)
dw_ingres.retrieve()
(3)資料管道的指令碼(clicked for cb_pipeline)
/*說明乙個支援資料管道的物件,lc_object是在
user object painter中定義的pipeline物件*/
lc_object lcl_object
∥啟動資料管道
integer start_result
connect using lc_oracle;
connect using lc_ingres;
lcl_object=create lc_object
/*lc_pipeline是在pipeline painter中定義的資料管道,以便將ingres基表中的資料傳送到oracle資料庫基表中*/
lcl_object.dataobject="lc_pipeline"
start_result=lcl_object.start &(lc_oracle,lc_ingres,dw_oracle)
if start_result=-3
messagebox("資料管道錯","此基表已存在");
return
end if
disconnect using lc_oracle;
disconnect using lc_ingres;
小結
powerbuilder不僅為應用系統的快速開發提供了強有力的支援工具,而且為30多種資料庫提供了直接連線或odbc連線,再加上transaction object和data pipeline同時訪問多個資料庫的功能,為大中型企業在資訊系統建設的中後期完成系統的互連提供了簡捷有效的方法。
很老的資料了,但有時也會用得著。
powerbuilder日期函式
pb系統函式 之 日期時間函式day 功能得到日期型資料中的號數 1到31之間的整數值 語法day date 引數date 要得到號數的日期值返回值 integer。函式執行成功時返回號數 1到31之間的整數值 如果date引數的值為null,則day 函式返回null。dayname 功能得到指定...
PowerBuilder常用技巧
1 怎樣對分組裡的行加上序號,要求每個組裡行的序號從1開始!datawindow物件,用計算域 做分組組號 cumulativesum if 分組列名 1 分組列名 0 0,1 for all 做組內編號 getrow first getrow for group 1 1 2 去掉分組資料視窗的分頁...
PowerBuilder 未公開函式
原文 已知乙個dw中的某列的列名 在字串變數中 以獲得這個列物件的dwo 方法是 dwobject ldwo use,ldwo name ldwo use dw 1.object ldwo name ldwo use.get attribute name false 這樣就可以在用setitem 設...