网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 数据库类-> PowerBuilder-> PB中实现可监控的数据备份

PB中实现可监控的数据备份
作者:佚名 来源:InterNet 加入时间:2005-1-31
相关文章
  • 如何在PB中制作特殊形状数据窗口或按钮
  • PB和EAServer共筑多层应用架构
  • PB中的数据窗口自动刷新技术
  • PB中读取地磅BCD解码
  • PB通过OLEObject使用Word
  • PB动态报表格式自由定义的实现
  • 为PB的TreeView实现同步选择
  • 如何用pb实现MSACCESS数据库的图片字段存取
  • 在PB中应用灵活多样的排序
  • 在PB中如何使用Microsoft Outlook发送邮件
  • 相关书籍:
    在众多的数据库应用开发平台中,PowerBuilder作为一个强大的图形Client/Server数据库应用程序开发工具而得到广泛使用。本文将向读者详细介绍在PB开发的数据库应用程序中实现可监控数据备份的具体解决方案。

    PowerBuilder是当今数据库应用程序中常用的开发工具之一,开发者能用它来建立用户容易使用的各种数据库应用程序,PB内部定义的函数种类繁多,并允许开发者修改其数据库,当然,PB的部分功能也存在着不足。

    在数据库系统中,数据备份是一种最为常用也极其重要的功能。在数据库DBMS环境下,我们可以直接调用数据库本身提供的图形化或命令行式的备份命令进行备份,而在PB中却只能使用Run ( string { windowstate } )的格式调用DOS下的命令,而这种方法的一个重要弊端就是数据库备份的成功与否,只能在DOS窗口中以数据库系统的自身返回信息显示,一般情况下为英文字符,这样既与应用程序的中文界面不协调,也增加了对使用人员的要求,显得不够专业。

    在实践中,笔者发现一种根据数据库的返回信息自动判断备份成功与否的方法,并能在数据备份没有完成时拒绝退出,效果令人满意。下面在PowerBuilder 6.5、Oracle 7.3.2、Windows 9x环境下就这一方法的实现做一介绍。

    1、在“备份”图标按钮的Click事件中加入以下代码
    if fileexists("c:\jybak.log") then
    filedelete("c:\jybak.log")
    end if
    Run("exp73 userid=scnmis/scnmis@jydb file=c:\jybak.dmp full=y log=c:\jybak.log",Minimized!);
    st_message.text='正在备份,请耐心等待。'
    back_up = True
    其中,back_up为全局变量,定义为:boolean back_up = false。
    2、在窗口的Timer事件中加入以下代码
    long file_handle
    string read_line
    If back_up Then
    st_message.text='正在备份,请耐心等待。'
    If L_quit Then
    SetPointer(Hourglass!)
    End If
    file_handle = fileopen( 'c:\jybak.log',LineMode!)
    do while fileread(file_handle,read_line) > -1
    loop
    If file_handle > 0 Then
    fileclose(file_handle)
    SetPointer( Arrow! )
    if Left(read_line,30) <> "Export terminated successfully" then
    st_message.text='数据备份失败!'
    Messagebox("警告:", "数据备份失败!")
    else
    st_message.text='数据备份成功!'
    Messagebox("恭喜!", "数据备份成功!")
    end if
    g_bfbz = True
    back_up = False
    If L_quit Then
    close(w_main)
    Exit_Windows( 5,0 )
    End If
    End If
    End If
    其中,Exit_Windows为Global External Function,定义为:FUNCTION long ExitWindowsEx(long a,long b) LIBRARY "user32.dll"。
    3、至此,监控的数据备份的目的基本已经达到。为了实现在备份没有完成的情况下禁止退出,在“退出”图标按钮的Click事件中加入以下代码
    long file_handle ,i
    string read_line
    long rc,allow
    rc = MessageBox( "请您选择:", "是否退出系统?", Question!, YesNo! )
    if rc = 1 then
    If g_bfbz = False then
    If back_up Then
    MessageBox( "提示信息:","备份正在进行,完成后才能退出。按确定继续备份")
    Goto Lab0
    Else
    allow = Messagebox("提示信息","退出前应当备份,现在开始吗?", Question!, YesNo!)
    L_quit =true
    If allow=1 Then
    Triggerevent(Cb_backup,Clicked!)
    Else
    close(w_main)
    ExitWindowsEx( 5,0 )
    End If
    End If
    Else
    close(w_main)
    ExitWindowsEx( 5,0 )
    End if
    End if


    以上方法在PowerBuilder 6.5、Oracle 7.3.2环境下调试通过,但在其他开发工具或数据库系统中也可使用这种方法,代码的改动量不大,具有一定的实用价值。

    [文章录入员:nancy]

    相关文章
  • 如何在PB中制作特殊形状数据窗口或按钮
  • PB和EAServer共筑多层应用架构
  • PB中的数据窗口自动刷新技术
  • PB中读取地磅BCD解码
  • PB通过OLEObject使用Word
  • PB动态报表格式自由定义的实现
  • 为PB的TreeView实现同步选择
  • 如何用pb实现MSACCESS数据库的图片字段存取
  • 在PB中应用灵活多样的排序
  • 在PB中如何使用Microsoft Outlook发送邮件
  • 相关书籍:
    本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    PowerBuilder
    ACCESS
    MS SQL
    MySQL
    Oracle
    Foxpro
    PowerBuilder
    Sybase
    其它
    电脑教程阅读排行
    ·浅析PowerBuilder下动...
    ·PowerBuilder连接Sy...
    ·用Powerbuilder开发W...
    ·在powerbuilder中向E...
    ·PB通过OLEObject使用W...
    ·PB中读取地磅BCD解码
    ·在PowerBuilder中操作...
    ·PB动态报表格式自由定义的实现
    ·PB开发Sybase数据库应用技...
    ·如何在PB中制作特殊形状数据窗口...