单搞定ASA备份/恢复程序

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

AdaptiveServerAnywhere(本文中简称 ASA)是(本文中简称PB)自带的管理系统,可作为小型应用系统的数据库服务器。而数据库的 备份/恢复是一项基本的工作,要想用短短几分钟就完成这类程序的编写,能做到吗?本文就将为大家介绍一个用PB编写的 ASA 备份/ 恢复程序,只需很短的时间,就可以编制完成并运用在以 ASA作为数据环境的小型应用上。

一 备份程序
先来看看 备份程序部分的写法。在窗体上建一文本框sle_1,用来显示 备份的文件名,并添加两个按钮:cb_1(浏览)、cb_2( 备份)。相应的事件代码如下:

//cb_1.clicked()

stringfname,name

GetfileSaveName('保存',fname,name,“db”,'数据库 备份文件(*.1),*.1')

sle_1.text=fname

//cb_2.clicked()

stringmysql,bfname

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

mysql=“BACKUPDATABASETO'”+bfname+“'”

executeimmediate:MysqlUSINGSQLCA;//运用SQL语句立刻执行 备份

ifsqlca.sqlcode=0then

messagebox(“信息提示”,' 备份成功!',information!,OK!)//给出 备份成功与否的相关信息

else

messagebox(“信息提示”,' 备份失败!',information!,OK!)

endif

二 恢复程序
再来看看恢复数据库程序的编写。在窗体上建一文本框sle_1,显示用来恢复的 备份文件名,并添加两个按钮:cb_1(查找)、cb_2(恢复)。声明一个修改文件属性的API函数:

FUNCTIONulongSetFileAttributes(refstringlpFileName,ulongdwFileAttributes)LIBRARY“kernel32.dll”ALIASFOR“SetFileAttributesA”

相应的事件代码如下:

//cb_1.clicked()

stringfname,name

GetfileOPenName('查找',fname,name,“1”,“数据库 备份文件(*.1),*.1”)

sle_1.text=fname

//cb_2.clicked()

stringmysql,bfname,gzname

ulongsxz=32,kb//sxz为文件的属性值,32表示可读写

booleantmp

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

//d:lgz为示例中数据库文件所在目录,tmp.db为临时的数据库文件

mysql=“RESTOREDATABASE'd:lgz/tmp.db'FROM'”+bfname+“'”

executeimmediate:MysqlUSINGSQLCA;//同样是运用SQL语句来立刻执行恢复数据库的工作

ifsqlca.sqlcode<>0then

messagebox(“信息提示”,'数据恢复失败!',information!,OK!)

return

endif

disconnect;//断开数据库连接

gzname='d:lgz/gz.db'//包含路径的数据库文件

SetFileAttributes(gzname,sxz)//去掉只读属性

tmp=filedelete('d:lgz/gz.db')//删除恢复前的数据库

iftmp=falsethen

messagebox(“信息提示”,' 备份失败!',information!,OK!)

return

endif

//将临时的数据库复制到当前的数据库文件上

bfname=“d:lgz/tmp.db”

gzname=“d:lgz/gz.db”

kb=filecopy(bfname,gzname,true)

ifkb=1then

messagebox(“信息提示”,'数据库恢复成功!',information!,OK!)

else

messagebox(“信息提示”,'数据库复制失败!',information!,OK!)

return

endif

filedelete('d:lgz/tmp.db')//删除临时的数据库文件

connect;

三小结
程序 备份和恢复的实现都只是调用了SQL内置的功能来实现,使程序显得相对简洁。功能虽然比较单一和简单,却也能满足数据库的 备份和恢复的工作需求,在要求不高的应用场合可为数据库管理人员节约大量精力。上述程序在PB9.0中调试通过。
 

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值