有一关于恢复数据库问题?
procedure TfrBackdata.Button3Click(Sender: TObject);
var DataPath: string;
begin
self.Caption := '正在恢复数据....';
OpenDialog1.Filter := '备份文件 (*.back)|*.back|所有文件 (*.*)|*.*';
//设置备份文件后缀
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName) + '\backupdata';
//设置备份路径
if OpenDialog1.Execute then
DataPath := OpenDialog1.FileName;
if DataPath <> '' then
begin
if application.MessageBox('此操作将使上次备份以来的所有数据丢失,是否继续?',
'恢复数据', MB_OKCANCEL) = idOK then
begin
ADOCommand1.CommandText := 'restore database myaddress from disk=''' + DataPath +
'''' + ' with replace'; //恢复数据命令语句
try
ADOCommand1.Execute;
//执行恢复过程
showmessage(' 恢复成功!');
except
showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
showmessage(' 恢复失败!');
end;
end;
end;
self.Caption := '数据备份和恢复';
end;
我用以上代码,为何不能完成恢复数据库,反而提示数据库正在使用中,不能对它访问,这应该如何解决?
问题点数:10、回复次数:2Top
1 楼chb5210(沉默)回复于 2006-03-02 08:34:03 得分 0
恢复数据库要连接master数据库,而不是连接你使用的数据库,并且要断开你使用的数据库,还原完成后,断开master数据库,连接你使用的数据库Top
2 楼whbo(王红波(年轻人,要有所作为))回复于 2006-03-03 08:58:07 得分 0
use masterTop




