备份SQL Server2000的数据库成功,但恢复时却失败,提示说我正在使用中,怎办?

d_delphi 2002-09-07 03:05:36
我通过ADO进行的SQL语句备份SQL Server2000的数据库成功,但恢复时却失败,提示说我正在使用中,怎样解决?
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxfzhxf1 2002-09-07
  • 打赏
  • 举报
回复

TDataBase 有 CloseDataSEt 的用法,如果AdoConnection也有的话,就可以在恢复前调用
ssl2000 2002-09-07
  • 打赏
  • 举报
回复
我也有过这样的问题
---最后发现问题所在:---
备份完后只要重新打开数据源,恢复就不能进行了。(数据库已被使用)
一般重新运行程序就好了。
但如果在运行期database备份完毕后不打开的话就可以恢复了。
实在不行把恢复单独做出来吧(一个单独的程序);
daidelta 2002-09-07
  • 打赏
  • 举报
回复
把SQL Server的服务停止,再试一下就能成功
dtourist 2002-09-07
  • 打赏
  • 举报
回复
另外用一个adoconnection连接master数据库,将原来的连接断开。然后使用Query连接这个Adoconnection使用Sql语句恢复
if RestorDialog.Execute then
begin
with TAdoQuery.Create(nil) do
try
close;
sql.Clear ;
FrmSystemDM.ADOConnection1.Connected := False;
Connection :=FrmSystemDM.ADOConnection2;
FrmSystemDM.ADOConnection2.Connected := True;
SQL.add(Format('Restore DATABASE DHPrint From DISK=''%s'' with Replace', [RestorDialog.FileName]));
ExecSQL ;
finally
FrmSystemDM.ADOConnection1.Connected := True;
FrmSystemDM.ADOConnection2.Connected := False;
free;
end;
end;
end;
forgetcsdn 2002-09-07
  • 打赏
  • 举报
回复
if OpenDialog1.Execute then
begin
//DataBase1.Close;
DataBase1.Connected := False;
DataBase1.Params.Clear;
DataBase1.AliasName := 'master';
DataBase1.DatabaseName := 'master';
DataBase1.Params.Add('User Name=sa');
DataBase1.Connected := True;
Query1.DatabaseName := 'master';
try
with Query1 do
begin
Close;
UnPrePare;
SQL.Clear;
SQL.Add('Restore DataBase tsg from disk = :disk');
Params[0].AsString := OpenDialog1.FileName;
PrePare;
ExecSQL;
end;
except
ShowMessage('恢复失败');
Exit;
end;
end;
Application.MessageBox('恭喜您,数据恢复成功','提示',MB_OK + MB_ICONINFORMATION);
end;
你将BDE换成ADO就可以了;
forgetcsdn 2002-09-07
  • 打赏
  • 举报
回复
你等一下,我帮你解决;
drizzt123 2002-09-07
  • 打赏
  • 举报
回复
可能某程序正在使用该库,把它关闭

2,496

社区成员

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

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