转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
PowerBuilder6.0中数据管道         

PowerBuilder6.0中数据管道

作者:闵涛 文章来源:闵涛的学习笔记 点击数:800 更新时间:2009/4/24 21:42:45
p>PowerBuilde将数据管道使应用程序具有在多个数据库中进行数据交换的功能。在PowerBuilder6.0中,可以通过数据管道对象来执行指定的数据管道操作,这里就来设计一个简单的程序来实现说明在程序中数据管道的应用 。

  SQLCA是PowerBuilder中缺少的事务处理对象,使用它可以进行数据库连接,其实它是一个由Transaction创建的一个实例,但有时在应用程序中需要同时连接到不同的数据库,用户则必须使用两个或更多的事务处理对象,例如在此例中,执行Pipe-examples数据管道操作必须连接到PowerSoft Demo DB V6和Pipe两个数据库中,用户可以通过CREATE语句创建两个不同的事务处理对象实例:
desttrans=CREATE Transaction // 连接目标数据库的事务处理对象
sourcetrans=CREATE Transaction // 连接源数据库的事务处理对象
  在应用程序中必须通过数据管道对象来执行数据管道操作,同样用户可以使用CREATE语句创建一个数据管道对象:
  i-pipeline=CREATE Pipeline // 执行Pipe-examples数据管道操作的数据管道对象

  数据管道对象的几个常用的属性和函数现介绍如下:
  DataObject属性:设置数据管道对象需要执行的数据管道操作,此例中我们将它设置为"Pipe-examples"。
  RowslnError属性:该属性返回在执行数据管道操作时出现错误的记录总数。
  RowsRead属性:返回数据管道操作已经从源数据表中读取的记录总数。
  RowsWritten属性:返回数据管道操作已经写信目标数据库的记录总数。
  Start函数:开始数据管道操作,该函数的使用语汇法如下:
  i-pipeline.Start(sourcetrans,desttrans,dw-error)
  sourcetrans参数代表连接源数据表的事务处理对象,desttrans参数是连接目标数据表的事务处理对象,dw-error是一个数据窗口控件,用来显示数据管道操作中出现错误的记录。
  Cancel函数:体制一个正进行的数据管道操作,该函数无参数,若操作正常停止,函数返回值为1,否则为1。
  Repair函数:该函数在数据管道操作出现错误后使用,Repair函数将纠正操作中的错误并对数据库进行修复,使用语法如下:i-pipeline.Repair(desttrans)

声明全局变量
  程序中的事务处理对象和数据管道对象在各个事件中都要使用到,所以必须将它们设置为全局变量(Global Variables),在窗口的文本框 淙胍韵陆疟径ㄒ辶礁鍪挛翊矶韵笫道褪莨艿蓝韵笫道?
   Transaction desttrans,sourcetrans
   Pipeline i-pipeline
创建程序窗口w_pipeline
 在窗口中加入三个标签,一个数据窗口(dw_error)和四个按纽。其作用分另是三个标签用来显示数据管道执行过程中已读的记录总数、已写的记录总数和出现错误的记录数,“dw_error”数据窗口控件用来显示数据交换中的错误记录,[开始]、[终止]、和[取消]按钮分别用来控制数据管道操作的流程,[退出]按钮则是用来关闭应用程序.
编写程序代码
  在Pipe应用程序的Open事件中添加以下代码:
          open(w-pipeline) //打开程序窗口
  程序中要执行连接数据库操作,所以必须设置两个事务处理对象的属性,具体方法是:切换到窗口绘图器,在程序窗口的Open事件输入以下代码:
i-pipeline=CREATE Pipeline //创建数据管道对象实例
desttrans=CREATE Transaction //创建两个事务处理对象实例
sourcetrans=CREATE Transaction
//设置连接源数据库的事务处理对象实例的属性

     sourcetrans.DBMS =ProfileString("regedit.ini","source","dbms"," ")
      sourcetrans.Database=ProfileString("regedit.ini","source","database"," ")
      sourcetrans.userid= ProfileString ("regedit.ini", "source", "userid", "")
      sourcetrans.dbpass= ProfileString ("regedit.ini", "source", "dbpass", "")
      sourcetrans.logid = ProfileString ("regedit.ini", "source", "logid", "")
      sourcetrans.logpass = ProfileString ("regedit.ini", "source", "logpassword", "")
      sourcetrans.servername = ProfileString ("regedit.int", "source", "servername", "")
      sourcetrans.DBParm =ProfileString("regedit.ini","source","dbparm"," ")
connect Using sourcetrans;//连接源数据库
If sourcetrans.Sqlcode$#@60;0 then
MessageBox(“错误!”,“无法连接源数据库!”)
End If
//设置连接目标数据库的事务处理对象实例的属性

   desttrans.DBMS =ProfileString("regedit.ini","dest","dbms"," ")
    desttrans.Database=ProfileString("regedit.ini","dest","database"," ")
     desttrans.userid= ProfileString ("regedit.ini", "dest", "userid", "")
      desttrans.dbpass= ProfileString ("regedit.ini", "dest", "dbpass", "")
      desttrans.logid = ProfileString ("regedit.ini", "dest", "logid", "")
     desttrans.logpass = ProfileString ("regedit.ini", "dest", "logpassword", "")
      desttrans.servername = ProfileString ("regedit.ini", "dest", "servername", "")
      desttrans.DBParm =ProfileString("regedit.ini","dest","dbparm"," ")
connect Using desttrans; //连接目标数据库
If desttrans.sqlcode$#@60;0 then
MessageBox(“错误!”,“无法连接目标数据库!”)
End If
在[开始]按钮进行数据管道操作,在Clicked事件中写入如下代码:
   i-pipeline.dataobject="pipe-examples" //设定需要执行的数据管道操作
   i-pipeline.start(desttrans,desttrans,w-pipeline.dw-error) //执行操作
   st-read.text=string(i-pipeline.rowsread) //显示数据管道操作的结果信息
   st-write.text=string(i-pipeline.rowswritten)
   st-error.text=string(i-pipeline.rowsinerror)
另外三个按钮单击(Clicked)事件的代码分别如下:
//终止数据管道操作
integer i
i=i-pipeline.cancel()
If i$#@60;0 then
MessageBox(“错误”,“终止数据管道操作错误!”)
End If

//纠正错误
i-pipeline.Repair(desttrans)

//关闭程序窗口
close(w-pipeline)


//断开数据库连接
Disconnect using desttrans;
If sourcetrans.SQLCode$#@60; $#@62;0 Then
MessageBox(“错误!”,“无法断开源数据库链接!”)
End If
//断开目标数据库连接
Disconnect using desttrans;
If desttrans.SQLCode$#@60; $#@62;0 Then
MessageBox(“错误!”,“无法断开目标数据库链接!”)
End If
//删除三个对象实例
Destroy sourcetrans
destroy desttrans
destroy i-pipeline
执行程序
  程序代码编写完毕后执行程序,然后单击[开始]按钮,应用程序将开始数据管道操作,结果一段时间后位图窗口上部的三个标签中将显示出管道操作的结果。如何在应用程序中使用数据管道功能进行数据交换就讲到这里,如果你在使用Powerbuilder开发的应用程序中需要进行数据库的复制或更新等等操作,那么建议你使用数据管道功能,因为它既可靠让你以最短的时间完成同样的功能。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台