PB 数据管道的实用程序设计技术
Powerbuilder(以下简称 pb)提供强大数据管道技术(Data Pipeline)。通过数据管道 ,
我们可以在不同数据库表之间移动数据,实现一个或多个表中的数据拷贝到一个新的或已
经存在的目标数据表中。这种操作可以在同一数据库中进行,也可以在不同数据库,甚至
可以在不同的 DBMS 之间进行。
属性
DataObject,RowsRead,RowsWriten,RowsInError,Syntax
事件
PipeStart,PipeMeter,PipeEnd
函数
Start,Repair,Cancel
本文着重结合具体实例讲述在应用程序中如何实现数据管道技术。在应用程序中使用数据管道有以下五
个基本步骤:
1、 创建应用程序所需对象;
系统对象 Pipeline(数据管道对象:说明 Commit 和 Max Errors 文本框中参数的意义。 1、 Commit 中选中
ALL,为当所有行在管道操作完成后再向数据库提交,如果操作过程中被终止,则撤消对表的所有操作。
用户可以根据实际情况加以选择自己块操作的大小。2、 Max Errors 文本框中选中 NO LIMIT,为不论有
多少行出错都不终止管道操作。此处视实际编程需要可选其它数字。)
首先打开 Pipe 画板,定义源数据库、源表、目标数据库、目标表,然后取名存盘,在本例中 Pipe 名
为 Pipe_sample。
打开 User Object 画板,定义一个用户对象,该对象继承自系统对象 Pipeline,并在该对象中定义如
下实例变量:
STATICTEXT READ
STATICTEXT WRITTEN
STATICTEXT ERROR
这三个变量用来记录数据管道执行时读入的行数,写入的行数,发生错误的行数。
在该用户对象的 Pipemeter 事件中写入如下语句:
READ.TEXT=STRING(ROWSREAD)
WRITTEN.TEXT=STRING(ROWSWRITTEN)
ERROR.TEXT=STRING(ROWSINERROR)
然后取名存盘,在本例中取名为 U_Pipe_Sample。
2、 执行数据管道初始化操作;
打开窗口画板,创建一个窗口,在该窗口中放置一个数据窗口对象和三个静态文本对象,分别名为
(DW_1,ST_READ,ST_WRITTEN,ST_ERROR),DW_1 这个数据窗口用来记录管道执行过程中发生
的错误信息,不要为该数据窗口对象指定数据窗口。
在该窗口中定义如下实例变量:
Transaction I_SRC,I_DST
U_Pipe_Sample I_PIPE
在窗口的 Open 事件中写入如下语句:
i_src=create transaction
i_src.dbms=odbc
i_src.dbparm="Connectstring=DSN=数据库名;uid=用户名;pwd=口令"
connect using i_src;
If i_src.sqlcode <>0 then