关于数据管道的问题,高手快来!

diandianqiuqiu 2002-03-30 10:08:26
两个数据库A,B。 A为MS SQL SERVER,B为SQL ANYWHERE。现要将A中某张表table_a的数据全部导入B中的table_b中,请问在程序中如何用PIPELINE实现那?请大家帮帮忙,指点一下(最好有具体代码)或者告之哪本书有讲到的,泻了...
...全文
48 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
diandianqiuqiu 2002-03-30
  • 打赏
  • 举报
回复
别急啊!呵呵!我还有不明白的那,就是liulee那个invo_pipeline.syntax=‘’是直接写在脚本里的么?

另:
受liulee启发,我看了一下PB的帮助,里面有这样的例子:
i_upipe = CREATE u_pipe //u_pipe由标准pipeline对象继承而来
i_upipe.DataObject = "p_pipe" //p_pipe是在数据管道画笔中建立的实例
i_upipe.Start(i_src, i_dst, dw_1)
感觉这好象更符合我的要求.我只要将table_a内容拷贝到table_b,而liulee好象把整个数据库都拷过来了(或者是要我将两张表单独建数据源?)

请大家再帮帮忙,泻了...
spawnwind 2002-03-30
  • 打赏
  • 举报
回复
5........给分
liulee 2002-03-30
  • 打赏
  • 举报
回复
1.创建两个事务itr_from -> itr_to,分别连接到两个数据库。
2.pipeline重载一下为用户对象,然后实例化为invo_pipeline
2.invo_pipeline.syntax = '......' //研究一下导出的某pipeline语法,或者直接读入文件,因为运行态pipeline不编译的。
3.invo_pipeline.start(itr_from,itr_to,...)
4........结束。
圣殿骑士18 2002-03-30
  • 打赏
  • 举报
回复
下面是利用程序运行数据传输的步骤∶
1. 建立数据传输对象利用 PowerBuilder 的数据传输绘图器定义
一个数据传输对象后保存在PBL中。
2. 建立用户对象类利用用户绘图器建立一个标准的数据传输类对象,
并且保存在PBL
3。增加一个数据窗口控件到窗口上,在数据传输过程中如果侦测到错误,
会自动在窗口中的数据窗口控件中动态建立一个数据窗口对象。
4. 增加其它有用的控件可以在窗口上面增加一些按钮控制数据传输的流程。
例如∶可能希望增加一个按钮控制操作数据的传输或文字控件显示状态信息,
例如∶读取或写入数据的笔数。
5. 声明两个不同的交易对象
可能利用 SQLCA 连接来源数据库,要连接到目的数据库必须建立和使用
第二个交易对象。
// 在窗口当中声明一个数据类型为交易对象的 instance 变量
transaction itran_dest
//利用并参考 instance变量建立一个新的交易对象
itran_dest = CREATE transaction

//利用第二个交易对象连接到目的数据库
// 设置第二个交易对象的属性
itran_dest.DBMS = "SYC"itran_dest.Database = "Prod5".....
CONNECT Using itran_dest;
// 利用 itran_dest.SQLCode 检查错误
If itran_dest.SQLCode < > 0 then
Messagebox("错误!" , "目的数据库连接错误")
End if
6. 实例化用户对象在窗口中声明一个和用户对象所建立的数据传输对象一样
数据类型的数据传输类型的 instance 变量
u_mypipe iuo_pipe
//利用 instance 变量建立一个用户对象的实例
iuo_pipe = CREATE u_mypi
.....好累!
在powerBuilder 6.0进阶篇——数据窗口的应用
有慢慢看
diandianqiuqiu 2002-03-30
  • 打赏
  • 举报
回复
多谢大家,问题已解决,多谢捧场,泻了...
diandianqiuqiu 2002-03-30
  • 打赏
  • 举报
回复
谢谢大家,问题已解决,多谢捧场!
liuyxit 2002-03-30
  • 打赏
  • 举报
回复
//创建第第二个事务对象和0数据管道变量
tran_tmp=create transaction
pip_input=create pipeline
// 定义数据源Profile fox_data
tran_tmp.DBMS = "ODBC"
tran_tmp.AutoCommit = False
tran_tmp.DBParm = "ConnectString='DSN=fox_data'"
//连接tran_tmp
connect using tran_tmp;
//定义数据管道对象(你在画笔里建的那个)
pip_input.dataobject='pip_pack1'
//执行数据管道
i_return=pip_input.start(tran_tmp,sqlca,dw_1)
//显示数据管道执行情况
st_1.text=string(pip_input.rowsread)
st_2.text=string(pip_input.rowswritten)
st_3.text=string(pip_input.rowsinerror)
if i_return<>1 then
messagebox("出错","执行代码为"+string(i_return))
return
else
messagebox("ok","导出成功")
end if

1,075

社区成员

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

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