如何從不同的中取出資料置於同一資料視窗中

2021-06-16 01:07:27 字數 1389 閱讀 5454

在一次專案開發過程中需要

從不同的資料庫(eg:db1=oracle;db2=sybase)中取出資料方如同乙個資料視窗中作為報表.思路如下:

1.建立兩個tabular型的datawindow,dw_oracle,dw_sybase.

2.建立乙個composite的datawindow"dw_cmpst".在這個資料視窗中置入dw_oracle和dw_syabse.分別命名為"dw_orcl"和"dw_sbs".

3.在指令碼中寫入如下的語句:

datawindowchildldwc_report

transactionnew_sqlca;

connectusingsqlca;// 使用預設的事務物件

dw_cmpst.getchild("dw_orcl",ldwc_report)//getareferenceto

thefirstreportinthecomposite

ldwc_report.settransobject(sqlca)

ldwc_report.retrieve()

disconnectusingsqlca;

new_sqlca=createtransaction// 第二個事務物件

new_sqlca.dbms="sycsystem10/11"

new_sqlca.database="database"

new_sqlca.logpass="password"

new_sqlca.servername="sybase_server"

new_sqlca.logid="logid"

new_sqlca.dbparm="release='11',staticbind=0,datetimeallowed='yes'"

connectusingnew_sqlca;

dw_cmpst.getchild("dw_sbs",ldwc_report)//reference

ldwc_report.settransobject(new_sqlca)

ldwc_report.retrieve()

disconnectusingnew_sqlca;

setnull(new_sqlca);

dw_cmpst.retrieve()//取出資料並顯示

最後一句出現錯誤,去掉這一語句又不能顯示資料,百思不得其解.後來在一國外論壇得到如下答案:

將dw_cmpst.retrieve()改為如下語句:

dw_cmpst.setredraw(false)

dw_cmpst.modify("datawindow.print.preview=yes")

dw_cmpst.modify("datawindow.print.preview=no")

dw_cmpst.setredraw(true)

同一程序中同一埠如何區分不同的Socket

為了區分不同應用程序間的網路通訊和連線,主要有 3個引數 通訊的目的ip位址 使用的傳輸層協議 tcp 或 udp 和使用的埠號。socket的原意是 插座 通過將這3個引數結合起來,與乙個 插座 socket繫結,應用層就 可以和傳輸層通過套接字介面,區分來自不同應用程式程序或網路連線的通訊,實現...

同一埠如何區分不同的Socket

為了區分不同應用程序間的網路通訊和連線,主要有3個引數 通訊的目的ip位址 使用的傳輸層協議 tcp 或 udp 和使用的埠號。socket的原意是 插座 通過將這3個引數結合起來,與乙個 插座 socket繫結,應用層就可以和傳輸層通過套接字介面,區分來自不同應用程式程序或網路連線的通訊,實現資料...

同一埠如何區分不同的Socket

為了區分不同應用程序間的網路通訊和連線,主要有3個引數 通訊的目的ip位址 使用的傳輸層協議 tcp 或 udp 和使用的埠號。socket的原意是 插座 通過將這3個引數結合起來,與乙個 插座 socket繫結,應用層就可以和傳輸層通過套接字介面,區分來自不同應用程式程序或網路連線的通訊,實現資料...