备份的文件已生成,以下是恢复的函数,运行没有提示错误,但数据库没有变化.procedure TManagerForm.SpeedButton2Click(Sender: TObject);
begin RestoreDialog.filter:='备份文件(*.dat)*.dat';
RestoreDialog.defaultext:='dat';
RestoreDialog.filename:='';if MessageDlg('恢复后需重新登录,是否恢复?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
SpeedButton2.Enabled:=False;
try
DM.ADOConnection.Connected:=false;
with DM.BakADOQuery do
begin
close;
SQL.clear;
SQL.Add('use master');
if RestoreDialog.Execute then
begin
SQL.Add('restore database Library from disk= '''+RestoreDialog.FileName+''' with replace');
ExecSQL;
MessageDlg('数据库恢复成功!',mtInformation,[mbOK],0);
end;
end;
Except
MessageDlg('数据库恢复失败!',mtInformation,[mbOK],0);
end;
DM.ADOConnection.Connected:=True;
SpeedButton2.Enabled:=True;
end;
end;
begin RestoreDialog.filter:='备份文件(*.dat)*.dat';
RestoreDialog.defaultext:='dat';
RestoreDialog.filename:='';if MessageDlg('恢复后需重新登录,是否恢复?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
SpeedButton2.Enabled:=False;
try
DM.ADOConnection.Connected:=false;
with DM.BakADOQuery do
begin
close;
SQL.clear;
SQL.Add('use master');
if RestoreDialog.Execute then
begin
SQL.Add('restore database Library from disk= '''+RestoreDialog.FileName+''' with replace');
ExecSQL;
MessageDlg('数据库恢复成功!',mtInformation,[mbOK],0);
end;
end;
Except
MessageDlg('数据库恢复失败!',mtInformation,[mbOK],0);
end;
DM.ADOConnection.Connected:=True;
SpeedButton2.Enabled:=True;
end;
end;
解决方案 »
- delphi登录窗体代码
- BDS 2006代号Dexter,我看了BDS 的复活节彩蛋,里面有个开发人员名称就是Dexter,是不是...
- QQ的代理通信机制
- 在delphi7中如何判断一个网址或页面是否存在?急急急!
- 有关视频监控方面的问题
- 请问:在D7中开发的COM组件如何返回Recordset类型?
- 读写文件的问题
- 谁能给我一好的键盘钩子
- delphi问题,请高手指教
- 用Delphi怎样取得和改变某个文件的属性?创建时间,修改时间,访问时间,只读,隐藏,存档,系统。
- RichEdit如何打开一个.rft文件?
- WebSnap中WebUserList的AccessRights和Adapter的ViewAccess如何使用?
你试着另放一个ADOConnection连向master,然后把原来的AC关了看看我原来干脆把恢复程序写成了一个单独的程序才好使
RESTORE DATABASE master
FROM TAPE = '\\.\Tape0'
GO
如果,你在'use master'之后execsql一下,再sql.clear一下,再
SQL.Add('restore database Library from disk= '''+RestoreDialog.FileName+''' with replace');
ExecSQL;
就ok了
DM.ADOConnection.Connected:=false;
这怎么解决呢?
注:DM.BakADOQuery 是基于master数据库的.
再create database...
每一部都是基于master库,这是必然的,否则总是提示正在使用
反正我的经验是如此