《PB程序设计》第11章 数据管道
- 格式:ppt
- 大小:654.50 KB
- 文档页数:41
数据管道技术在系统数据备份与恢复中的应用摘要:介绍了PowerBuilder中数据管道的功能、使用方法,并结合具体实例介绍了利用数据管道技术在管理信息系统中实现系统数据备份和恢复的处理方法。
关键词:PowerBuilder;数据管道;数据备份;数据恢复1 数据管道技术概述1.1 数据管道的功能PowerBuilder中的数据管道对象提供了在数据库内部、数据库之间、甚至不同的数据库管理系统之间快速转移数据的简便途径。
利用数据管道可以实现将一个或多个表中的数据转移到相同的DBMS或不同的DBMS中,可以创建一个与原表相同结构的表,即复制表结构,可以删除目标表及数据后重建目标表和数据,还可以只把最新数据传送到目标表中。
除了传送一般的数据(比如数值型、字符型等)外,数据管道还可以在数据库之间传送图像、声音之类的大二进制对象(Blob型数据)。
1.2 数据管道的使用方法在使用数据管道对象时,通常有两种方法来实现数据的转移:一是直接通过数据管道画板创建数据管道对象并执行;二是通过数据管道画板创建数据管道对象并保存,然后在程序中通过代码执行数据管道。
在PowerBuilder中创建数据管道对象时,必须指定数据管道对象的以下属性:①连接的源数据库;②连接的目标数据库;③复制数据的源表;④存放数据的目标表;⑤数据管道操作的类型;⑥是否把表的扩展属性一起传送到目标数据库中。
1.3 在应用程序使用数据管道当一个数据管道对象被创建后,在应用程序中使用该数据管道时,需要创建数据管道用户对象来继承数据管道对象的属性、事件和函数,定制出满足需要的标准类用户对象,然后使用标准类用户对象的属性、函数等来编写事件处理程序。
因此,在应用程序中使用数据管道,一般需要以下几个步骤:①创建所需的各个数据管道对象并保存;②创建数据管道用户对象;③建立应用程序窗口,并在相应的事件过程中通过代码来执行数据管道,实现数据的传送;④执行结束操作,关闭数据管道并断开与源数据库和目标数据库的连接。
在PowerBuilder程序中使用数据管道
刘君
【期刊名称】《智能计算机与应用》
【年(卷),期】2008(000)002
【摘要】通过学生就业信息管理系统对各系学生就业数据汇总来介绍在程序中使用数据管道的方法.
【总页数】2页(P65-66)
【作者】刘君
【作者单位】辽宁信息职业技术学院,辽阳,111000
【正文语种】中文
【中图分类】TP312
【相关文献】
1.游标在开发PowerBuilder应用程序中的使用 [J], 王旭;秦军
2.在PowerBuilder中利用数据管道进行数据转换 [J], 张丽芳
3.PowerBuilder数据管道的程序设计技术 [J], 吴兰君
4.PowerBuilder使用入门第三讲在应用程序中使用数据库 [J], 孙洪林
5.Powerbuilder数据管道技术在多数据库数据传输中的应用 [J], 幸勇;伍永刚;魏守平;张初旺;张世钦
因版权原因,仅展示原文概要,查看原文内容请购买。
《PB程序设计(汽车学院)》实验指导书适用专业:物流管理课程代码: 8245060学时: 20 学分:编写单位:交通与汽车工程学院编写人:曾传华审核人:骆勇审批人:孙仁云目录实验一定义和使用数据库..................................................................................................... - 2 - 实验二POWERBUILDER管理信息系统开发 .................................................................. - 26 - 主要参考文献........................................................................................................................... - 58 -实验一定义和使用数据库一、实验目的和任务1.数据库画笔及其应用2.数据库的创建和删除3.数据库的基本操作4.数据表的创建和管理5.PowerBuilder的数据库接口二、实验仪器、设备及材料1.CPUPIII1000HZ,内存64MB RAM,1G硬盘空间计算机;2.安装POWERBUILDER9.0;3.安装SQL SERVER2000。
三、实验原理利用POWERBUILDER9.0数据库画板等对数据库进行操作。
四、实验步骤1.使用SQL SERVER创建和管理Mydb数据库;2.在student数据库添加相应数据表:表 1.1 用户信息表Myuser的列定义表 1.2 院系信息表College的列定义表 1.3 专业信息表Specialty表 1.4 课程信息表Course表 1.5 学生信息表Student表 1.6 成绩信息表Sreport3.各表之间的相互关系●专业表和院系表:存在隐式关系,3位专业编号的前两位由院系编号决定。
三、“动态”数据管道的应用前面已将数据管道的应用进行了简单说明,下面将介绍如何在程序中修改和调整数据管道。
注意到支撑用户对象中有一个Syntax属性,该属性的数据类型为String,保存用于创建数据管道对象的语法。
如果将Syntax输出,将是类似与下面的文本:PIPELINE(source_connect=Book,destination_connect=Desi,type=create,commit=100,errors=100,keyname=" person_x")SOURCE(name="person",COLUMN(type=varchar,name="person_no",dbtype="char(8)",key=yes,nulls_allowed= no)COLUMN(type=varchar,name="dept_no",dbtype="char(3)",nulls_allowed=no)……如果利用字符串函数(比如Mid()、Pos()、Len())对Syntax属性进行操作,应用程序可以动态修改数据管道对象语法,从而实现不同的要求。
例如将上面文本中的“type=create”改为“type=update”就改变了数据管道的操作方式。
现在我们知道了动态修改数据管道的方法,那么我们能否不建立数据管道对象而只应用支撑用户对象实现管道操作吗?答案是肯定的,方法是通过构造符合Pipeline语法的文本(有关pipeline的语法可以把在画笔中定义的Pipeline对象导成文本文件进行分析),将此文本赋值给Syntax属性,这样不必定义数据管道对象仍然可以进行管道操作。
下面是笔者编写的一个从Forpro数据表向Oracle数据库复制数据的函数,由于应用了“动态”数据管道,无需在画笔中创建数据管道对象,从而实现任意表的数据传递。
[PB]-数据管道数据管道提供了一种不同数据库之间传递数据和(或)表结构的方法。
数据管道对象要完成数据管道的功能需要提供如下内容:需要数据源和目标数据库,并能够和这两个数据库正常联接需要源数据库中的哪些表;需要复制到目标数据库中的什么位置;要完成哪些管道操作;发生错误的频率;允许发生错误的最大数;需要包括的扩充特性。
数据管道画板New —> DataBase —> Data Pipeline数据管道选项:Table:目标表名Key:目标表的主键名(非主键字段名)Options:管道选项Create:添加表、Replace:替换已存在的表、Refresh:删除或者插入行、Append:插入行、Update:更新或者插入行Max Errors:允许的最大错误数Commit:被提交的事务处理内的行数Extended Attributes:扩充特性是否管道化Design->Database Bolb 处理Blob类型的字段如果在目标数据库中只创建数据表而不拷贝原来的数据,可以通过定义永远不成立的检索条件来实现,比如2<1作为检索条件。
数据管道用户对象New —> PB Object —> Standard Class —> OK —> 选中pipeline —> OK属性:DataObject:指定使用哪个数据管道该属性是数据管道最重要的一个属性,有些类似于数据窗口控件的DataObject 属性。
此属性只能在运行时设定,虽然在用户对象画板中也提供了设置该属性的地方,但这好像不起作用。
下面是一个为管道用户对象设定DataObject的例子:iuo_pipeline.DataObject="p_copy_employee"数据窗口控件的DataObject属性如果在脚本运行时动态修改,则形成发行文件时,在执行文件中不能包括相应的数据窗口对象。
PB数据管道的实用程序设计技术在PowerBuilder中我们可以通过数据管道,在不同数据库表之间移动数据,实现一个或多个表中的数据拷贝到一个新的或已经存在的目标数据表中。
这种操作可以在不同数据库,甚至不同的DBMS之间进行。
PowerBuilder提供了强大的数据管道技术(Data Pipeline)。
我们通常使用的有如下两种方式:直接使用pb画板中提供的实用工具在应用程序中实现数据移动本文着重结合具体实例讲述在应用程序中如何实现数据管道技术。
在应用程序中使用数据管道有以下五个基本步骤:创建应用程序所需对象;执行数据管道初始化操作;启动数据管道;处理程序运行中移动数据的错误行;执行数据移动完毕后的收尾操作。
创建应用程序所需对象为了在应用程序中实现数据管道,需建立以下几个不同的对象:数据管道对象、支撑用户对象、窗口对象。
创建数据管道对象这是为实现管道功能所必须的,可在Powerbuilder提供的pipeline 画板中创建并定义它的特征。
示例在pipeline画板中创建应用程序需要的数据管道对象pipe_user_table01。
在此着重说明Commit和Max Errors文本框中参数的意义。
Commit中选中ALL:当所有行在管道操作完成后再向数据库提交,如果操作过程中被终止,则撤消对表的所有操作。
Max Errors文本框中选中NO LIMIT:不论有多少行出错都不终止管道操作。
此处视实际编程需要可选其它数字。
创建支撑用户对象为了提供对属性、事件及函数的支持,需创建一个继承PB管道系统对象的用户对象,通过这个用户对象来管理管道操作。
创建过程如下:第一步,打开用户对象画板,单击New按钮,在New User Object对话框中选择Class 组框中的Standard作为用户对象类型。
第二步,在Select Standard Class Type对话框中选取继承pipeline内置系统对象。
[PB]-数据管道数据管道提供了一种不同数据库之间传递数据和(或)表结构的方法。
数据管道对象要完成数据管道的功能需要提供如下内容:需要数据源和目标数据库,并能够和这两个数据库正常联接需要源数据库中的哪些表;需要复制到目标数据库中的什么位置;要完成哪些管道操作;发生错误的频率;允许发生错误的最大数;需要包括的扩充特性。
数据管道画板New —> DataBase —> Data Pipeline数据管道选项:Table:目标表名Key:目标表的主键名(非主键字段名)Options:管道选项Create:添加表、Replace:替换已存在的表、Refresh:删除或者插入行、Append:插入行、Update:更新或者插入行Max Errors:允许的最大错误数Commit:被提交的事务处理内的行数Extended Attributes:扩充特性是否管道化Design->Database Bolb 处理Blob类型的字段如果在目标数据库中只创建数据表而不拷贝原来的数据,可以通过定义永远不成立的检索条件来实现,比如2<1作为检索条件。
数据管道用户对象New —> PB Object —> Standard Class —> OK —> 选中pipeline —> OK属性:DataObject:指定使用哪个数据管道该属性是数据管道最重要的一个属性,有些类似于数据窗口控件的DataObject 属性。
此属性只能在运行时设定,虽然在用户对象画板中也提供了设置该属性的地方,但这好像不起作用。
下面是一个为管道用户对象设定DataObject的例子:iuo_pipeline.DataObject="p_copy_employee"数据窗口控件的DataObject属性如果在脚本运行时动态修改,则形成发行文件时,在执行文件中不能包括相应的数据窗口对象。