SQL数据库备份与恢复的问题,进来帮一下忙啊。(20分)

  • 主题发起人 主题发起人 xiaoxiao8372
  • 开始时间 开始时间
X

xiaoxiao8372

Unregistered / Unconfirmed
GUEST, unregistred user!
if ss_name='' then
begin
showmessage('请选择路径');
exit;
end;
try
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('restore database mrpbook from disk='''+ ss_name +'''');
execsql;
end;
except
showmessage('恢复失败');
end;
ss_name为路地址,该程序用到了Topen和TSAVE来选择和保存备份的文件。。
以上是恢复数据库功能,只要是一运行就提示:“数据库正在使用,所以未能获得对数据库的排它访问权限” 。可我的数据库没有在使用啊。我的备份功能倒是正常,就是不能恢复。等我再到SQL里手动还原刚才备份的数据库一切正常啊,这个什么原因呢???
 
当然在使用时无法恢复,因为有人在用呀.
在备份和恢复时,最好断开数据库的连接,再利用一个额外的备份和恢复小程序实现最好.这样就没问题了
 
你说地很对,可我把adoconnection1的connect设为假了。应该算是断开与数据库的连接了吧,可还是不行。
我试了N回了只有这样算好使,在建立个连接,连上别地库,然后在对原来的库进行恢复就可以了,这是什么道理呢,你们好用的程序或是认真地给我讲讲行吗??
 
use master
restore database mrpbook from disk .........
 
能告诉我你这招是什么道理吗?我刚才看到了好几个贴子都有这样地问题,有人说是SQL的缓冲问题我也同意这个观点。。。
方法也无非是我说的先连一下别的库,然后在进行原来库的恢复。这个方法多笨啊,大家谁有直接了当地啊。。???
 
好像不能恢复当前数据库~~如果你想这样操作,去问MS吧。

反正人家帮助是写:在还原过程中,指定的数据库必须不处于使用状态。指定数据库中的任何数据将由还原的数据替换。

祝你好运~~
 
同意doll_paul的意见。
 
要执行 use master(这个和你使用的数据库是无关的)
同意doll_paul
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部