数据管道

本例主要描述了数据管道的用法,我们首先看看数据管道的一些基础知识:

数据管道主要可以完成以下几个功能:

数据库之间数据的传送
修改表的结构,象主键标,是否可为NULL等

我们在Pipeline画板中创建一个管道对象时,必须说明以下这些参数:

Source Connection源数据库
Destination Connection目的数据库
Data Source源表
Table目的表
Option管道操作

其中管道操作方式有:

Create:                                               添加表(表不能存在〕
Replace:                                             删除再添加表(表可以存在
Refresh:                                              删除再插入行
Append:                                              插入行
Update:                                              更新/插入行

管道对象属性:

RowsInError   Long        管道中发现的错误的行数
RowsRead      Long        管道已读取行数
RowsWritten   Long        写入数据库的行数
DataObject     String       管道对象名
Syntax            String        建立管道对象的语法字符串

管道对象函数:

Cancel            Integer                         中止管道执行
ClassName     String                            返回用户对象的名称
GetParent       PowerObject                 返回父对象的名称
PostEvent       Boolean                         在用户对象的消息队列末增加一个事件
Repair            Integer                            修正目的数据库
Start                Integer                           执行管道
TriggerEvent   Integer                            送一个事件到用户对象并执行事件脚本
TypeOf          Object                            返回用户对象的类型


要在程序中使用管道,必须要在Pipeline画板中创建一个管道对象,一个管道类型的
标准用户类对象和包含DataWindow控件的窗口。 PowerBuilder检测到任何管道错误后
将使用标准的dataWindow显示这个错误, datewindow 每个无效行显示全部的列,并显
示一条错误消息。在本例中,创建了3个管道对象:

p_emp_master_create,
p_emp_transaction_create,
p_emp_master_transaction_update.

p_emp_create为employee表建一个拷贝,作为本例的Master Table,
p_emp_transaction_create建立本例的Transaction Table,
p_emp_master_transaction_update根据所选部门和Transaction Table的内容修改Master Table相应记录,它的语法为:
        SELECT "emp_pipe_transaction"."emp_id",
               "emp_pipe_transaction"."emp_fname",
               "emp_pipe_transaction"."emp_lname",
               "emp_pipe_transaction"."dept_id",
                "emp_pipe_transaction"."bene_health_ins",
                "emp_pipe_transaction"."bene_life_ins",
                "emp_pipe_transaction"."bene_day_care"
        FROM "emp_pipe_transaction"
        WHERE ( emp_pipe_transaction.dept_id = :department_id )
其中::department_id即为在数据窗口dw_dept中所选部门的id号。

管道类型的用户对象有2个:p_pipe_wmeter和p_pipe_wometer,它们都是从pipeline继承来
的,都包含有3个静态文本类型的实例变量:st_read,st_written,st_errors。 p_pipe_wmeter
在它的pipemeter事件中对它们赋值,在窗口的Open事件中把它们与窗口上的3个静态
文本控件联系起来,动态显示当前数据管道的进度。

 

总结:

要实现数据管道要完成以下几步:

1. 创建Pipeline类型的标准不可视用户对象p_pipe_meter
2. 在Pipeline中创建一数据管道(作为第5步的DataObject)
3. 创建一窗口(带一数据窗口控件PipeError和命令按钮〕
4. 在OPEN事件中创建一p_pipe_meter类型的iu_PipeLine实例变量
5. 设置iu_PipeLine的DataObject特性
6. 连接源数据库和目的数据库
7. 启动数据管道(按钮Clicked事件〕
8. 动态修改进度(数据管道的PipeMeter事件)
9. Cancel事件
10.管道修复
11.提示完成(PipeEnd事件〕
12.断开数据库,Destory用户对象。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值