`
zjut_xiongfeng
  • 浏览: 271320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据管道的用法

阅读更多

我们首先看看数据管道的一些基础知识:    
  数据管道主要可以完成以下几个功能:  
   
  数据库之间数据的传送    
  修改表的结构,象主键标,是否可为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用户对象。    

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics