初级菜鸟,有一难题不知用什么方法解决?

chdd 2002-03-27 06:58:48
公司现在是一套人马两套系统,数据需要整合。具体要求如下:
要从两个数据库里的相同结构的数据表里提取数据,进行运算(有部分相同的型号,数量有正负之分,需要运算的数据比较大)生成新表,我想请问:
1、用什么算法比较快捷。
2、在一个pb程序中如何连接两个不同的数据库中,并提取数据。
(最好能给出源码)
谢谢。
...全文
68 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbfighter 2002-03-28
  • 打赏
  • 举报
回复
关注!
jinmin__ytu 2002-03-28
  • 打赏
  • 举报
回复
下面的程序是我处理财务年末余额时做的,仅供参考:)
其中sql_old、sql_new是两个事务对象,temp代表任意变量,
column代表任意字段,p_cur指游标,table代表待处理的表

declare p_cur cursor for
select column... from table..
where column...=:temp
using sql_old;
open p_cur;
fetch p_cur into :temp.....;
do while sql_old.sqlcode = 0
update (或进行其他操作) table..
set column..=:temp......
where column..=:temp.... using sql_new;
if sql_new.sqlcode < 0 then return -1
fetch p_cur into :temp.......;
loop
close p_cur1;
long5 2002-03-28
  • 打赏
  • 举报
回复
关注!
chdd 2002-03-28
  • 打赏
  • 举报
回复
需要从两个数据库的相同结构的表中,提取数据进行运算(有部分相同的型号,数量有正负之分,需要运算的数据比较大)生成新表,不知大家看没看这个。我想不明白的是,我把提取出的数放到哪里计算?
WaitingYou 2002-03-28
  • 打赏
  • 举报
回复
1,建立2个ini文件:DourceDatabase.ini,AidDatabase.ini,里面分别写入源数据库和目标数据库的配置信息。
2,建立2事务分别和这2数据库对应。
3,先用目标数据库登录,从源中读出数据时,用事务2连接即可

别忘了sql语句后面加上using 事务1 或 using事务2
flymeng 2002-03-27
  • 打赏
  • 举报
回复
transaction yourdatabase
yourdatabase=create transaction
//---------
yourdatabase.DBMS = "MSS Microsoft SQL Server 6.x"
yourdatabase.servername="servername"
yourdatabase.Database="yourdatabasename"
yourdatabase.logid="sa or you password"
remote_database.autocommit=false
remote_database.DBParm = "secure=0"//如果是98就用1如果是nt或2000就用0
connect using yourdatabase;


//----------------------------
你要写的程序
//------------------------------
commit using yourdatabase;
disconnect using yourdatabase;
destroy yourdatabase;



//-------------------------------------------
jiazhij 2002-03-27
  • 打赏
  • 举报
回复
有笔误!
反正意思就是这样了。
程序运行时可以连接两个库,
pb编译时,只能打开一个。
用哪个表连哪个吧
jiazhij 2002-03-27
  • 打赏
  • 举报
回复
首先你要定义一个全局的sqlca_2
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = false
SQLCA.DBParm = "Connectstring='DSN=data1;UID=dba;PWD=sql'"

connect using sqlca;
if sqlca.sqlcode <> 0 then
MessageBox ("Cannot Connect to Database", zdb_sqlca.sqlerrtext)
return
end if

//第二个连接
SQLCA_2=create transaction
SQLCA_2.DBMS = "ODBC"
SQLCA_2.AutoCommit = false
SQLCA_2.DBParm = "Connectstring='DSN=data2;UID=dba;PWD=sql'"
connect using zdb_sqlca;
if sqlca2.sqlcode <> 0 then
MessageBox ("Cannot Connect to Database", zdb_sqlca.sqlerrtext)
return
end if
chdd 2002-03-27
  • 打赏
  • 举报
回复
忘了说了,数据库是sql7.0

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧