如何从不同的数据库中取出数据置于同一数据窗口中

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

在一次项目开发过程中需要从不同的数据库(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. 在脚本中写入如下的语句:

DataWindowChild ldwc_report

Transaction NEW_SQLCA;

CONNECT USING SQLCA; // 使用默认的事务对象

dw_cmpst.GetChild( "dw_orcl", ldwc_report) // get a reference to

the first report in the composite

ldwc_report.SetTransObject( SQLCA)

ldwc_report.Retrieve()

DISCONNECT USING SQLCA;

NEW_SQLCA = CREATE Transaction // 第二个事务对象

NEW_SQLCA.DBMS = "SYC Sybase System 10/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'"

CONNECT USING NEW_SQLCA;

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

ldwc_report.SetTransObject( NEW_SQLCA)

ldwc_report.Retrieve()

DISCONNECT USING NEW_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)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航