《PB程序设计》第11章 数据管道
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)在Table下拉列表框中选择包含Blob列 的源表,该表中包含的Blob列显示在Large Bina¯ry.Text Column下拉列表框中。 (3)在Large Binary.Text Column下拉列表 框中单击选择所需的Blob列。 (4)在Destination Column编辑框中修改目 的表相应的Blob列的名称。 (5)单击“OK”按钮关闭对话框。
返回本节 录
11.2.1 创建数据管道
(2)Cancel()函数 在数据管道运行过程中,执行Cancel()函 数后将终止数据管道的执行。Cancel()函 数的语法格式为: PipelineObject.Cancel() 该函数执行成功时返回1,失败时返回-1
返回本节 录
11.2.1 创建数据管道
第11章 数据管道
11.1 数据管道的功能 11.2数据管道画板的使用数据管道 数据管道画板的使用数据管道 11.3设计实例 设计实例 小结
返回总目录
11.1 数据管道的功能
数据管道提供了在数据库内部、数据库之 间,甚至不同的数据库管理系统之间快速 复制数据的功能。利用数据管道复制数据 的过程称之为灌入数据(Piping Data)。 数据管道可以完成普通方法难以完成的任 务
返回本节 录
11.2.2 数据管道的修改
在数据管道对象中添加Blob列的操作步骤: (1)从Design菜单中选择“Database Blob” 命令选项,打开“Database Binary.Text Large Object”对话框,如图11¯17所示。
返回本节 录
11.2.2 数据管道的修改
返回本节 录
11.2.1 创建数据管道
(2)RowsInError、RowsRead和 RowsWritten属性RowsInError、RowsRead 和RowsWritten属性提供数据管道运行过程 中的状态信息。这些属性通常显示在应用程 序的窗口中,让用户了解数据管道的执行进 程。
ห้องสมุดไป่ตู้
返回本节 录
返回章目录
11.1 数据管道的功能
数据管道同样是PowerBuilder提供的一个对象,它 的使用方法有两种: ● 用数据管道画板创建数据管道对象,然后在数据 管道画板中运行数据管道对象。这种方式方便了开 发人员开发和测试应用程序。例如,可以把服务器 中的数据下载到本地机,然后不依赖于服务器进行 前期开发工作。 ● 用数据管道画板创建并保存数据管道对象,用用 户对象画板创建基于数据管道对象的用户对象,编 写需要的事件处理程序,在代码中运行管道。这种 方式提供了灵活运用数据管道的手段。
返回本节 录
11.2 数据管道画板的使用
出现数据库连接画板,选中表右击出现菜单 后进行选择,系统打开数据管道画板,如图 11¯5所示
返回本节 录
11.2 数据管道画板的使用
数据管道画板工作区分为3个部分:位于左下 角的源表部分(这部分不能直接修改)、位 于右下角的目的表部分以及位于上部的数据 管道选项 经过上述操作后可以在数据管道画板中选择 源表及其列、 图11¯6 工具栏 定义目的表及 其列以及有关属性。数据管道画板的工具栏 除PowerBar主工具栏以外还有PainterBar工 具栏,在表11¯1中对PainterBar1工具栏工具 的用法作以简要说明,如图11¯6所示
返回本节 返回本节 录 录
11.2.1 创建数据管道
在应用程序中使用数据管道的基本步骤为: (1)用数据管道画板创建数据管道对象,或 用用户对象画板创建继承Pipeline的标准类用 户对象。 (2)选择数据源(源表)
• 数据管道画板的源表(Source Table)部分显示 数据管道要从中提取数据的表的有关信息,包括:
返回本节 录
11.2 数据管道画板的使用
(4)分别在Source Connection(源连接) 列表和Destination Connection(目的连接) 列表中选择源数据库、目的数据库,在Data Source中选择数据源,然后单击“OK”按钮, 系统根据所选数据源的不同,出现不同的画 面,按照与定义数据窗口数据标 源相似的方 法定义数据源;定义数据源之后,单击工具栏 上如图11¯4所示图标
返回本节 录
11.1 数据管道的功能
无论哪种方法,使用之前都需要先创建数据管道对 象。创建数据管道对象时,需要确定下述选项: ● 源数据库; ● 目的数据库; ● 需复制数据的源表; ● 需存放数据的目的表; ● 需执行的数据管道操作类型; ● 运行数据管道时事务提交的频率; ● 允许出现的最多错误数; ● 是否要把表的扩展属性一起传送到目的数据库中。 数据管道对象中需要包含上述各个选项的结果。
11.2.1 创建数据管道
(3)对于最简单的应用程序,可以直接保存 该用户对象。 (4)对于复杂些的应用程序,可以创建该用 户对象的实例变量、用户对象、编写所需的 事件处理程序和函数等,最终形成一个可重 用的用户对象,然后保存用户对象
返回本节 录
11.2.1 创建数据管道
4.数据管道用户对象的属性 数据管道用户对象的属性共有5个,反映了当前使用 的数据管道对象、语法、数据管道运行情况等信息。 下面详细介绍各属性的意义及作用 (1)DataObject属性 DataObject属性的数据类型为String,用于保存数据 管道对象名(在数据管道画板中创建的对象)。其 作用与数据窗口控件的同名属性的作用十分相似, 该属性指定与数据管道用户对象相关联的数据管道 对象名
返回本节 录
11.2 数据管道画板的使用
(3)在New Data Pipeline对话框中,全部选项分 成了两部分:Data Source组框用于选择数据源,这 些数据源的作用与创建数据窗口时的数据源的作用 完全相同,它们生成指定的SQL SELECT语 句;Database Connections组框用于指定提取数据的 源表所在数据库所对应的数据库描述文件和目的表 所在数据库所对应的数据库描述文件,如果所需的 数据库描述文件没有在列表框中列出,那么必须使 用数据库画板创建相应的数据库描述文件。
返回本节 录
11.2 数据管道画板的使用
启动数据管道的操作步骤: (1)单击主工具栏的“New”按钮,打开 “New”对话框,在该对话框中激活 “Database”画板选项卡,如图11¯2所示。
返回本节 录
11.2 数据管道画板的使用
(2)双击Database选项卡的“Data Pipeline”图标,或者选择“Data Pipeline”图 标后单击“OK”按钮,系统打开“New Data Pipeline”对话框,如图11¯3所示
返回本节 录
11.2.1 创建数据管道
(2)选择“Standard Class”图标,然后单 击“OK”按钮,打开“Select Standard Class Type”对话框,如图11¯15所示。从所 列出的标准类类型中选择“pipeline”,然后 单击“OK”按钮,即可打开用户对象画板。
返回本节 录
11.2.1 创建数据管道
(3)Syntax属性 Syntax的数据类型为String,用于保存创建 数据管道对象的语句(在数据管道画板中创 建的对象)。
返回本节 录
11.2.1 创建数据管道
5.数据管道的事件 数据管道有5个预定义事件,在创建数据管道用户对象时, 可以根据应用程序的需要定义自己的用户事件。预定义事件 的触发时机为: ● Constructor:在数据管道用户对象创建时触发。 ● Destructor:在数据管道用户对象删除时触发。 ● PipeStart:开始执行Start()或Repair()函数时触发。 ● PipeMeter:每次读或写一块数据时触发,设计数据管道对 象时定义的Commit参数的大小决定了块的大小。也就是说, 数据管道每执行完一个数据库事务时都会触发PipeMeter事 件。 ● PipeEnd:Start()或Repair()函数执行结束时触发
数据管道定义后,可以立即执行,还可以保 存数据管道,以便再次使用或修改数据管道。 选择“保存”按钮后,输入管道名,单击 “OK”按钮。数据管道名称一般用“p”作为 前缀,如图11¯9所示
返回本节 录
11.2.1 创建数据管道
2.创建数据管道对象 可以像创建Windows窗口、数据窗口对象 那样创建数据管道。在PowerBuilder主窗口 的工具栏单击“New”按钮,选择“Database” 标签页,如图11¯10所示。
返回本节 录
11.2.2 数据管道的修改
保存数据管道后,可以再次打开和修改。在 Pow¯erBuilder主窗口的工具栏选择“Open”, 出现标题为Open的窗口,在对象类型 ObjectType中选择“Pipe¯lines”,在对象 “Object”中选择要打开的数据管道,如图 11¯16所示。单击“OK”按钮后,出现前面已 介绍过的界面。
返回本节 录
11.2.1 创建数据管道
(1)Start()函数 Start()函数执行数据管道对象(这里所 说的数据管道对象是从系统对象Pipeline继承 得到的用户对象的一个属性),将数据从源 表按SQL SELECT语句指定的要求传送到目 的表中。Start()函数的语法格式为 PipelineObject.Start(Sourcetrans, Destinationtrans,ErrordataWindow{, arg1,arg2,…,argn})
返回本节 录
11.2.1 创建数据管道
1.数据库画板中创建数据管道 进入数据库画板,在已连接的数据库中选择 要复制的表,单击鼠标右键,出现一个弹出 式菜单,如图11¯7所示。
返回本节 录
11.2.1 创建数据管道
选择“Data Pipeline”创建数据管道,如图11¯8 所示
返回本节 录
11.2.1 创建数据管道
● 源表各列的列名。 ● 源表列的数据类型,括号中是列的宽度
返回本节 录
11.2.1 创建数据管道
(3)选择目的表 数据管道画板的目的表(Destination Table)部分定义数据管道要把数据传输到什 么地方。 (4)选择管道操作 在数据管道画板工作区上部指定数据管道 选项,这些选项决定了将以何种方式运行管 道。
返回本节 录
11.2数据管道画板的使用数据道 数据管道画板的使用数据道
11.2.1 创建数据管道 11.2.2 数据管道的修改 11.2.3 数据管道删除
返回章目录
11.2.1 创建数据管道
创建数据管道 在PowerBuilder中,创建数据 管道分两种情况: 一是在数据库画板中创建; 二是通过创建数据管道对象创建。 两者的不同之处在于:在数据库画板中创建的 数据管道默认源数据库和目标数据库相同;而 通过创建数据管道对象的方法,则首先要选 择源数据库和目标数据库,可以相同也可以 不同。
返回本节 录
11.2.1 创建数据管道
双击“Data Pipeline”图标打开如图11¯11所 示的窗口。选择数据源,源数据库和目的数 据库。若数据源选择QuickSelect,则源表只 能选择一个
返回本节 录
11.2.1 创建数据管道
如图11¯12所示。选择要复制的列。然后单击 “OK”按钮
返回本节 录
11.2.1 创建数据管道
3.创建数据管道用户对象 由于数据管道是非可视对象,数据管道用户 对象也是标准类用户对象,所以应按照创建 标准类用户对象的方法创建,其具体操作如 下: (1)单击主工具栏上的“New”按钮,打开 “New”对话框,并激活“PB Object”选项卡, 如图11¯14所示
(3)Repair()函数 数据管道运行后,如果某些行不能传送到 目的数据库,就产生了运行错误。出错的行 显示在与数据管道对象相关联的数据窗口中, 用户在数据窗口中修改了数据后,使用 Re¯pair()函数将修改结果传送到目的数据 库。Repair()函数的语法格式为: PipelineObject.Repair(Destinationtrans)
返回本节 录
11.2.1 创建数据管道
6.数据管道的函数 数据管道对象有8个函数,其中 ClassName()、GetParent()、 PostEvent()、TriggerEvent()、TypeOf ()与其他对象相应函数的意义相同,在此 不再重复。下面介绍数据管道对象特有的3个 函数Start()、Repair()、Cancel()。
返回本节 录
11.2.1 创建数据管道
(2)Cancel()函数 在数据管道运行过程中,执行Cancel()函 数后将终止数据管道的执行。Cancel()函 数的语法格式为: PipelineObject.Cancel() 该函数执行成功时返回1,失败时返回-1
返回本节 录
11.2.1 创建数据管道
第11章 数据管道
11.1 数据管道的功能 11.2数据管道画板的使用数据管道 数据管道画板的使用数据管道 11.3设计实例 设计实例 小结
返回总目录
11.1 数据管道的功能
数据管道提供了在数据库内部、数据库之 间,甚至不同的数据库管理系统之间快速 复制数据的功能。利用数据管道复制数据 的过程称之为灌入数据(Piping Data)。 数据管道可以完成普通方法难以完成的任 务
返回本节 录
11.2.2 数据管道的修改
在数据管道对象中添加Blob列的操作步骤: (1)从Design菜单中选择“Database Blob” 命令选项,打开“Database Binary.Text Large Object”对话框,如图11¯17所示。
返回本节 录
11.2.2 数据管道的修改
返回本节 录
11.2.1 创建数据管道
(2)RowsInError、RowsRead和 RowsWritten属性RowsInError、RowsRead 和RowsWritten属性提供数据管道运行过程 中的状态信息。这些属性通常显示在应用程 序的窗口中,让用户了解数据管道的执行进 程。
ห้องสมุดไป่ตู้
返回本节 录
返回章目录
11.1 数据管道的功能
数据管道同样是PowerBuilder提供的一个对象,它 的使用方法有两种: ● 用数据管道画板创建数据管道对象,然后在数据 管道画板中运行数据管道对象。这种方式方便了开 发人员开发和测试应用程序。例如,可以把服务器 中的数据下载到本地机,然后不依赖于服务器进行 前期开发工作。 ● 用数据管道画板创建并保存数据管道对象,用用 户对象画板创建基于数据管道对象的用户对象,编 写需要的事件处理程序,在代码中运行管道。这种 方式提供了灵活运用数据管道的手段。
返回本节 录
11.2 数据管道画板的使用
出现数据库连接画板,选中表右击出现菜单 后进行选择,系统打开数据管道画板,如图 11¯5所示
返回本节 录
11.2 数据管道画板的使用
数据管道画板工作区分为3个部分:位于左下 角的源表部分(这部分不能直接修改)、位 于右下角的目的表部分以及位于上部的数据 管道选项 经过上述操作后可以在数据管道画板中选择 源表及其列、 图11¯6 工具栏 定义目的表及 其列以及有关属性。数据管道画板的工具栏 除PowerBar主工具栏以外还有PainterBar工 具栏,在表11¯1中对PainterBar1工具栏工具 的用法作以简要说明,如图11¯6所示
返回本节 返回本节 录 录
11.2.1 创建数据管道
在应用程序中使用数据管道的基本步骤为: (1)用数据管道画板创建数据管道对象,或 用用户对象画板创建继承Pipeline的标准类用 户对象。 (2)选择数据源(源表)
• 数据管道画板的源表(Source Table)部分显示 数据管道要从中提取数据的表的有关信息,包括:
返回本节 录
11.2 数据管道画板的使用
(4)分别在Source Connection(源连接) 列表和Destination Connection(目的连接) 列表中选择源数据库、目的数据库,在Data Source中选择数据源,然后单击“OK”按钮, 系统根据所选数据源的不同,出现不同的画 面,按照与定义数据窗口数据标 源相似的方 法定义数据源;定义数据源之后,单击工具栏 上如图11¯4所示图标
返回本节 录
11.1 数据管道的功能
无论哪种方法,使用之前都需要先创建数据管道对 象。创建数据管道对象时,需要确定下述选项: ● 源数据库; ● 目的数据库; ● 需复制数据的源表; ● 需存放数据的目的表; ● 需执行的数据管道操作类型; ● 运行数据管道时事务提交的频率; ● 允许出现的最多错误数; ● 是否要把表的扩展属性一起传送到目的数据库中。 数据管道对象中需要包含上述各个选项的结果。
11.2.1 创建数据管道
(3)对于最简单的应用程序,可以直接保存 该用户对象。 (4)对于复杂些的应用程序,可以创建该用 户对象的实例变量、用户对象、编写所需的 事件处理程序和函数等,最终形成一个可重 用的用户对象,然后保存用户对象
返回本节 录
11.2.1 创建数据管道
4.数据管道用户对象的属性 数据管道用户对象的属性共有5个,反映了当前使用 的数据管道对象、语法、数据管道运行情况等信息。 下面详细介绍各属性的意义及作用 (1)DataObject属性 DataObject属性的数据类型为String,用于保存数据 管道对象名(在数据管道画板中创建的对象)。其 作用与数据窗口控件的同名属性的作用十分相似, 该属性指定与数据管道用户对象相关联的数据管道 对象名
返回本节 录
11.2 数据管道画板的使用
(3)在New Data Pipeline对话框中,全部选项分 成了两部分:Data Source组框用于选择数据源,这 些数据源的作用与创建数据窗口时的数据源的作用 完全相同,它们生成指定的SQL SELECT语 句;Database Connections组框用于指定提取数据的 源表所在数据库所对应的数据库描述文件和目的表 所在数据库所对应的数据库描述文件,如果所需的 数据库描述文件没有在列表框中列出,那么必须使 用数据库画板创建相应的数据库描述文件。
返回本节 录
11.2 数据管道画板的使用
启动数据管道的操作步骤: (1)单击主工具栏的“New”按钮,打开 “New”对话框,在该对话框中激活 “Database”画板选项卡,如图11¯2所示。
返回本节 录
11.2 数据管道画板的使用
(2)双击Database选项卡的“Data Pipeline”图标,或者选择“Data Pipeline”图 标后单击“OK”按钮,系统打开“New Data Pipeline”对话框,如图11¯3所示
返回本节 录
11.2.1 创建数据管道
(2)选择“Standard Class”图标,然后单 击“OK”按钮,打开“Select Standard Class Type”对话框,如图11¯15所示。从所 列出的标准类类型中选择“pipeline”,然后 单击“OK”按钮,即可打开用户对象画板。
返回本节 录
11.2.1 创建数据管道
(3)Syntax属性 Syntax的数据类型为String,用于保存创建 数据管道对象的语句(在数据管道画板中创 建的对象)。
返回本节 录
11.2.1 创建数据管道
5.数据管道的事件 数据管道有5个预定义事件,在创建数据管道用户对象时, 可以根据应用程序的需要定义自己的用户事件。预定义事件 的触发时机为: ● Constructor:在数据管道用户对象创建时触发。 ● Destructor:在数据管道用户对象删除时触发。 ● PipeStart:开始执行Start()或Repair()函数时触发。 ● PipeMeter:每次读或写一块数据时触发,设计数据管道对 象时定义的Commit参数的大小决定了块的大小。也就是说, 数据管道每执行完一个数据库事务时都会触发PipeMeter事 件。 ● PipeEnd:Start()或Repair()函数执行结束时触发
数据管道定义后,可以立即执行,还可以保 存数据管道,以便再次使用或修改数据管道。 选择“保存”按钮后,输入管道名,单击 “OK”按钮。数据管道名称一般用“p”作为 前缀,如图11¯9所示
返回本节 录
11.2.1 创建数据管道
2.创建数据管道对象 可以像创建Windows窗口、数据窗口对象 那样创建数据管道。在PowerBuilder主窗口 的工具栏单击“New”按钮,选择“Database” 标签页,如图11¯10所示。
返回本节 录
11.2.2 数据管道的修改
保存数据管道后,可以再次打开和修改。在 Pow¯erBuilder主窗口的工具栏选择“Open”, 出现标题为Open的窗口,在对象类型 ObjectType中选择“Pipe¯lines”,在对象 “Object”中选择要打开的数据管道,如图 11¯16所示。单击“OK”按钮后,出现前面已 介绍过的界面。
返回本节 录
11.2.1 创建数据管道
(1)Start()函数 Start()函数执行数据管道对象(这里所 说的数据管道对象是从系统对象Pipeline继承 得到的用户对象的一个属性),将数据从源 表按SQL SELECT语句指定的要求传送到目 的表中。Start()函数的语法格式为 PipelineObject.Start(Sourcetrans, Destinationtrans,ErrordataWindow{, arg1,arg2,…,argn})
返回本节 录
11.2.1 创建数据管道
1.数据库画板中创建数据管道 进入数据库画板,在已连接的数据库中选择 要复制的表,单击鼠标右键,出现一个弹出 式菜单,如图11¯7所示。
返回本节 录
11.2.1 创建数据管道
选择“Data Pipeline”创建数据管道,如图11¯8 所示
返回本节 录
11.2.1 创建数据管道
● 源表各列的列名。 ● 源表列的数据类型,括号中是列的宽度
返回本节 录
11.2.1 创建数据管道
(3)选择目的表 数据管道画板的目的表(Destination Table)部分定义数据管道要把数据传输到什 么地方。 (4)选择管道操作 在数据管道画板工作区上部指定数据管道 选项,这些选项决定了将以何种方式运行管 道。
返回本节 录
11.2数据管道画板的使用数据道 数据管道画板的使用数据道
11.2.1 创建数据管道 11.2.2 数据管道的修改 11.2.3 数据管道删除
返回章目录
11.2.1 创建数据管道
创建数据管道 在PowerBuilder中,创建数据 管道分两种情况: 一是在数据库画板中创建; 二是通过创建数据管道对象创建。 两者的不同之处在于:在数据库画板中创建的 数据管道默认源数据库和目标数据库相同;而 通过创建数据管道对象的方法,则首先要选 择源数据库和目标数据库,可以相同也可以 不同。
返回本节 录
11.2.1 创建数据管道
双击“Data Pipeline”图标打开如图11¯11所 示的窗口。选择数据源,源数据库和目的数 据库。若数据源选择QuickSelect,则源表只 能选择一个
返回本节 录
11.2.1 创建数据管道
如图11¯12所示。选择要复制的列。然后单击 “OK”按钮
返回本节 录
11.2.1 创建数据管道
3.创建数据管道用户对象 由于数据管道是非可视对象,数据管道用户 对象也是标准类用户对象,所以应按照创建 标准类用户对象的方法创建,其具体操作如 下: (1)单击主工具栏上的“New”按钮,打开 “New”对话框,并激活“PB Object”选项卡, 如图11¯14所示
(3)Repair()函数 数据管道运行后,如果某些行不能传送到 目的数据库,就产生了运行错误。出错的行 显示在与数据管道对象相关联的数据窗口中, 用户在数据窗口中修改了数据后,使用 Re¯pair()函数将修改结果传送到目的数据 库。Repair()函数的语法格式为: PipelineObject.Repair(Destinationtrans)
返回本节 录
11.2.1 创建数据管道
6.数据管道的函数 数据管道对象有8个函数,其中 ClassName()、GetParent()、 PostEvent()、TriggerEvent()、TypeOf ()与其他对象相应函数的意义相同,在此 不再重复。下面介绍数据管道对象特有的3个 函数Start()、Repair()、Cancel()。