PB9下SQL 2K数据库备份与恢复!

holmes1229 2006-05-03 04:52:33
谁有这方面的代码啊
应该不长的
我找到的不好用
在线等ing~~~~
...全文
476 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sarah1228 2006-07-12
  • 打赏
  • 举报
回复
TO:moujf(阳光快车道)
你写的这个备份与还原可以在PB 8.0 + Oracle 10g中吗
wskyizhong 2006-06-03
  • 打赏
  • 举报
回复
为什么恢复时连接的是master
moujf 2006-05-04
  • 打赏
  • 举报
回复
参考上面的改改吧,祝你好运!
moujf 2006-05-04
  • 打赏
  • 举报
回复
还原:

transaction my_trans
my_trans=create transaction
my_trans.DBMS = ProfileString("eamis.ini","DATABASE","DBMS"," ")
my_trans.Database = "master"
my_trans.ServerName = ProfileString("eamis.ini","DATABASE","ServerName"," ")
my_trans.LogId = ProfileString("eamis.ini","DATABASE","LogId"," ")
my_trans.AutoCommit = true
my_trans.DBParm = ProfileString("eamis.ini","DATABASE","DBParm"," ")
connect using my_trans;

if my_trans.sqlcode<>0 then
messagebox("提示","连接数据库失败!"+sqlca.sqlerrtext)
disconnect using my_trans;
setpointer(arrow!)
return -1
end if

//断开当前的数据库
disconnect using sqlca;
string ls_phyfile,ls_name,ls_sql
integer value

ls_phyfile=string(today(),'yyyymmdd')+'.bak'

value=GetFileSaveName("请输入备份文件名",&
ls_phyfile,ls_name,"bak",&
"备份文件(*.bak),*.bak")

ls_sql="restore database eamis from disk='"+ls_phyfile+"'"

execute immediate :ls_sql using my_trans;

if my_trans.sqlcode<>0 then
messagebox("提示","数据库恢复失败"+my_trans.sqlerrtext)
disconnect using my_trans;
destroy my_trans;
halt
end if
disconnect using my_trans;
destroy my_trans;

//此处连接你的数据库
connect using sqlca;

messagebox("提示","数据库恢复成功!")
setpointer(arrow!)
return 1
moujf 2006-05-04
  • 打赏
  • 举报
回复
备份:

disconnect using SQLCA;
// Profile eamisdb
SQLCA.DBMS = ProfileString("eamis.ini","DATABASE","DBMS"," ")
SQLCA.Database = ProfileString("eamis.ini","DATABASE","Database"," ")
SQLCA.ServerName = ProfileString("eamis.ini","DATABASE","ServerName"," ")
SQLCA.LogId = ProfileString("eamis.ini","DATABASE","LogId"," ")
SQLCA.AutoCommit = false
SQLCA.DBParm = ProfileString("eamis.ini","DATABASE","DBParm"," ")

CONNECT USING SQLCA;
IF SQLCA.SQLCODE <0 THEN
messagebox("错误","连接数据库失败:"+SQLCA.SQLErrText)
return -1
END IF

setpointer(hourglass!)
string ls_phyfile,ls_name
int value
ls_phyfile=string(today(),'yyyymmdd')+'.bak'
value=GetFileSaveName("请输入备份文件名",&
ls_phyfile,ls_name,"bak",&
"备份文件(*.bak),*.bak")

sqlca.AutoCommit = true

string ls_sql
ls_sql="backup database eamis to disk='"+ls_phyfile+"'"
execute immediate :ls_sql ;
if sqlca.sqlcode<>0 then
messagebox("提示","生成备份文件错误!"+sqlca.sqlerrtext)
setpointer(arrow!)
return -1
end if
messagebox("提示","数据库备份成功!")
setpointer(arrow!)
return 1
holmes1229 2006-05-04
  • 打赏
  • 举报
回复
TO:moujf(阳光快车道)

可否告诉我你的QQ或者邮箱
以后有不明白的还要大哥多帮忙啊
holmes1229 2006-05-04
  • 打赏
  • 举报
回复
谢谢各位大哥。。。小弟努力ing~~~
belsai 2006-05-03
  • 打赏
  • 举报
回复
为什么不在SQLServer上设置备份呢?写代码要将那么多表备份出来太麻烦了,可以通过SQLServer备份后再通过调用API将备份文件Copy到本地存放即可。

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧