powerbuilder 备份和恢复数据库

本文详细介绍了数据库备份和恢复的流程,包括备份文件的创建、检查和替换,以及从备份文件恢复数据库的过程。通过使用SQLCA参数进行操作,确保数据库在备份和恢复过程中保持一致性和安全性。


备份:

string backup
STRING pathstring 
int li_net
if GetFilesaveName("选择文件",pathstring,backup,"bak","bak文件(*.bak),*.bak") = 1 then

	if pathstring = '' then 
		messagebox("提示","请输入备份数据库名称!") 
		return 
	end if
	IF FileExists ( pathstring ) THEN  
		li_net=Messagebox('信息','提示:系统发现在"'+pathstring+'"目录下已经存在一个同名的文件.~r~n~n要替换它吗?',Question!,YesNo!) 
		IF li_net= 1 THEN   
			FileDelete ( pathstring ) 
		ELSE
			return
		END IF 
	end if
	setpointer(hourglass!)
	backup= "backup database "+sqlca.database+" to disk = " + "'" + pathstring + "'"; 
	sqlca.AutoCommit = true
	EXECUTE IMMEDIATE :backup;
	setpointer(arrow!)
	if sqlca.sqlcode = 0 then 
		messagebox('提示信息','数据库备份成功!') 
	else 
		messagebox("错误信息",sqlca.sqlerrtext) 
	end if
	SQLCA.AutoCommit = false 
end if


恢复:


string backup
STRING pathstring 
if GetFileopenName("选择文件",pathstring,backup,"bak","bak文件(*.bak),*.bak") = 1 then

	if pathstring = '' then 
		messagebox("提示","请输入数据库名称!") 
		return 
	end if
	sqlca.AutoCommit = true
	backup="ALTER DATABASE "+sqlca.database+" SET OFFLINE WITH ROLLBACK IMMEDIATE";
	EXECUTE IMMEDIATE :backup;
	backup= "use master restore database "+sqlca.database+" from disk='" +pathstring+ "' with replace"; 
	
	EXECUTE IMMEDIATE :backup; 
	if sqlca.sqlcode = 0 then 
		messagebox('提示信息','数据库恢复成功!') 
	else 
		messagebox("系统信息","出错了+"+sqlca.sqlerrtext) 
	end if
	sqlca.autocommit=false

	
	backup="ALTER  database “+sqlca.database+" set   online  ";
	EXECUTE IMMEDIATE :backup;

	disconnect;
	connect;	//需重新连接一次,否则恢复后无法正常读取数据库内容
end if






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值