送分...数据库还原问题..

zzlazio 2004-11-10 11:23:06
我用的BDE+SQL SERVER...可以BACKUP.
但是用RESTORE还原时候老提示数据库正在使用,请问怎么解决??
最好有详细点的代码,问题解决马上散分...
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzzlp 2004-11-10
  • 打赏
  • 举报
回复
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('use master Restore database XXX from dist='your path'');//xxx为你的数据库名
execsql;

end;
oop80 2004-11-10
  • 打赏
  • 举报
回复
学习,
我也碰到过这个问题,且没解决
szztao 2004-11-10
  • 打赏
  • 举报
回复
如果你在程序中连接过这个数据库,就不能释放,恢复时就会出现上述的问题。
如果只是在程序中执行备份和恢复的工作,可以直接连接Sql Server的master数据库来执行。
fhuibo 2004-11-10
  • 打赏
  • 举报
回复
MySQL := 'ALTER DATABASE DB_CLE SET ONLINE WITH ROLLBACK IMMEDIATE';
这句话是把短开的数据库重新连接上
fhuibo 2004-11-10
  • 打赏
  • 举报
回复
恢复数据库:因为你正在打开的数据库所以先关闭(我用的是ADO你改以下就可以了)
DM.CLE_Connect.Connected := False;
MySQL := 'ALTER DATABASE DB_CLE SET OFFLINE WITH ROLLBACK IMMEDIATE'; //关闭数据库
with ADOQueryRestor do
begin
Close;
SQL.Clear;
SQL.Text := MySQL;
try
ExecSQL;
except

end;
end;
RestorStr := 'RESTORE DATABASE DB_CLE FROM DISK = ''' + Trim(e_lj.Text) + ''' WITH REPLACE';
with ADOQueryRestor do
begin
Close;
SQL.Clear;
SQL.Text := RestorStr;
try
ExecSQL;
Application.MessageBox('恢复数据库成功!','提示!',mb_ok+mb_iconinformation);
except
Application.MessageBox('恢复数据库出错!','错误!',mb_ok+mb_iconError);
end;
end;
MySQL := 'ALTER DATABASE DB_CLE SET ONLINE WITH ROLLBACK IMMEDIATE';
with ADOQueryRestor do
begin
Close;
SQL.Clear;
SQL.Text := MySQL;
try
ExecSQL;
except

end;
end;
DM.CLE_Connect.Connected := True;
zzlazio 2004-11-10
  • 打赏
  • 举报
回复
upup....
没人回吗??
555555555555
zzlazio 2004-11-10
  • 打赏
  • 举报
回复
结帖散分了..
谢谢大家....:)

2,497

社区成员

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

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