pb数据备份:PB中实现可监控的数据备份

在众多数据库应用开发平台中PowerBuilder作为个强大图形Client/Server数据库应用开发工具而得到广泛使用本文将向读者详细介绍在PB开发数据库应用中实现可监控数据备份具体解决方案

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

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

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

1、在“备份”图标按钮Click事件中加入以下代码
fileexists("c:\jybak.log") then
filedelete("c:\jybak.log")
end
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
read_line
If back_up Then
st_message.text='正在备份,请耐心等待'
If L_quit Then
SetPoer(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)
SetPoer( Arrow! )
Left(read_line,30) <> "Export terminated successfully" then
st_message.text='数据备份失败!'
Messagebox("警告:", "数据备份失败!")

st_message.text='数据备份成功!'
Messagebox("恭喜!", "数据备份成功!")
end
g_bfbz = True
back_up = False
If L_quit Then
close(w_)
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
read_line
long rc,allow
rc = MessageBox( "请您选择:", "是否退出系统?", Question!, YesNo! )
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_)
ExitWindowsEx( 5,0 )
End If
End If
Else
close(w_)
ExitWindowsEx( 5,0 )
End
End


以上思路方法在PowerBuilder 6.5、Oracle 7.3.2环境下调试通过但在其他开发工具或数据库系统中也可使用这种思路方法代码改动量不大具有实用价值
Tags:  pb连接数据库 pb数据库 pb数据窗口 pb数据备份

延伸阅读

最新评论

发表评论