powerbuilder自学课件(9).ppt_第1页
powerbuilder自学课件(9).ppt_第2页
powerbuilder自学课件(9).ppt_第3页
powerbuilder自学课件(9).ppt_第4页
powerbuilder自学课件(9).ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 数据管道 重点内容: 数据管道概述 创建数据管道 使用数据管道 数据管道示例,一、数据管道概述:,数据管道提供了 在同一数据库内或不同数据库之间,甚至是不同的数据库管理系统之间快速复制数据的途径,二、创建数据管道:,1.步骤,二、创建数据管道:,2.数据管道工具栏及保存对话框,数据管道工具栏,单击工具栏按钮 ,对数据管道对象进行保存,打开save data pipeline对话框,三、创建数据管道:,3.打开数据管道 选择File|open命令,打开open对话框,修改数据管道,四、使用数据管道:,1.数据管道对象属性 RowsInError:管道中发现的错误的行数 RowsRead

2、:管道已读取行数。 RowsWritten:写入数据库的行数。 DataObject:管道对象名。 Syntax:建立管道对象的语法字符串。,四、使用数据管道:,2.数据管道对象函数 Cancelr:中止管道执行; ClassName:返回用户对象的名称; GetParent:返回父对象的名称; PostEvent:在用户对象的消息队列末增加一个事件; Repair:修正目的数据库; Start:执行数据管道; Triggerevent:送一个事件到用户对象并执行事件脚本; TypeOf:返回用户对象的类型。,四、使用数据管道:,3.数据管道对象事件 Constructor:在用户对象建立时触

3、发。 Destructor:在用户对象被清除时发生。 PipeEnd:在调用strat()或Repair()函数结束时发生。 PipeMeter:在以块为单位的纪录被读写后触发。 PipeStart:在调用start()或Repair()函数开始时发生。,四、使用数据管道:,4.数据管道实现步骤 (1) 创建PipeLine类型的标准不可视用户对象 (2) 在PipeLine中创建一数据管道 (3) 创建一窗口(带一数据窗口控件和命令按钮) (4) 在open事件中创建第(1)步创建的不可视用户对象的实例变量 (5) 设置第(4)创建的实例变量的特性; (6) 连接源数据库和目的数据库; (7

4、) 启动数据管道 (8) 动态修改进度(数据管道的PipeMeter)事件; (9) Cancel事件 (10) 管道修复 (11) 提示完成(pipeEnd事件) (12) 断开数据库,销毁用户对象。,四、使用数据管道:,5.创建数据管道用户对象,五、数据管道示例:,数据库House_ASA中的表house_info及其数据灌入到powerBuilder10.0的演示数据库EAS Demo DB V10,步骤: (1) 以10.2.1的步骤,创建一个House_ASA数据库的customers为源表创建一个数据管道对象,并以p_customers为对象名保存。 (2) 以表customers

5、为基表创建数据窗口对象d_customers,显示风格为Grid,如图所示。,五、数据管道示例:,(3)创建一个继承于数据管道的不可视的标准用户对象,命名为uo_p_customer,uo_p_customer(用户对象)和p_customers(数据管道对象)的关系类似于数据窗口控件和数据窗口对象的关系,前者提供编程用的属性、事件和函数,后者用于操作数据库中的数据。 (4) 在uo_p_customer中定义如下实例变量: /用于显示数据管道的读、写和出错行数的静态文本 statictext ist_read,ist_write,ist_error (5) 在用户对象uo_p_custome

6、r的PipeMeter事件中编写如下脚本: /设置静态文本的值 ist_read.text=string(RowsRead) ist_write.text=string(RowsWritten) ist_error.text=string(RowsInError) (6)PipeMeter事件在数据管道每处理完一块数据后触发一次,数据块的大小由数据管理对commit选项决定。假设P_customers的commit选项为10,那么PipeMeter事件在数据管道每次处理完10条数据后发生一次。,五、数据管道示例:,(7)新建一个窗口对象w_pipeline_demo,用于和用户交互,完成数据管

7、道的启动、停止和修复操作。设计界面如图,里面包含三个数据窗口dw_source(源表)、dw_error(错误信息)、dw_destination(目的表);三个静态文本st_read(已读行数)、st_write(已写行数)、st_error(出错行数);五个命令按钮cb_start(启动)、cb_stop(停止)、cb_repair(修复)、cb_reset(放弃)、cb_exit(退出)。,五、数据管道示例:,(8) 窗口定义如下实例变量 transaction tra_source transaction tra_destination uo_p_customer uo_cutomer

8、 (9) 为窗口open事件中建立数据库连接,代码为: / Profile House 连接源数据库 tra_source.DBMS = ODBC tra_source.AutoCommit = False tra_source.DBParm = ConnectString=DSN=House数据源;UID=dba;PWD=sql connect using tra_source; if tra_source.sqlcode0 then messagebox(提示,连接源数据库失败!) return end if,/连接目标数据库 / Profile EAS Demo DB V10 tra_d

9、estination.DBMS = ODBC tra_destination.AutoCommit = False tra_destination.DBParm=ConnectString=DSN=EAS Demo DB V10;UID=dba;PWD=sql connect using tra_destination; if tra_destination.sqlcode0 then messagebox(提示,连接目的数据库失败!) return end if,五、数据管道示例:,(10) 在窗口的关闭事件中编写如下代码: /关闭与数据库的连接 disconnect using tra_s

10、ource; disconnect using tra_destination; /撤销事务对象 destroy tra_source destroy tra_destination /撤销数据管道对象 destroy uo_cutomer (11) 在数据窗口dw_source的retrieveend事件中编写如下代码: /检索数据窗口dw_destination dw_destination.retrieve(),五、数据管道示例:,(12) 启动按钮的clicked事件编写如下代码: integer li_temp li_temp=uo_cutomer.start(tra_source,tra_destination,dw_error) if li_temp1 then messagebox(错误提示,数据管道在运行中发生错误) end if (13) 停止按钮的clicked事件编写如下代码: uo_cutomer.cancel() (14) 修复按钮的clicked事件编写如下代码: integer li_temp li_temp=uo_cutomer.repair(tra_destination) if li_temp1 then me

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论