DELPHI的SQL数据库还原。
这是我写的代码:
 fom_backup.ADOCommand1.CommandText:='use master';
    fom_backup.ADOCommand1.Execute;
    fom_backup.ADOCommand1.CommandText:='Restore database finalff from disk='
    +''''+edit1.text+''''+'with recovery';
    fom_backup.ADOCommand1.Execute;
    showmessage('数据库恢复成功!');运行老提示:
因为数据库正在使用,所以未能获得对数据库的排他访问权应该怎么写,是要KILL进程??

解决方案 »

  1.   

    哈哈,兄弟,一样哈,我昨晚上也遇到这样的问题,同样帖了出来,不过还没有找到解决的办法,可以用存储过程,但我不懂那个,郁闷啊
    我的:
    with ADOQuery1 do
             begin
                Close;
                SQL.Clear;
                CommandTimeout:=10;
                SQL.Add('use master');
                SQL.Add('alter database library set offline WITH ROLLBACK IMMEDIATE');
                SQL.Add('restore database library from disk=:p1 with REPLACE');
                SQL.Add('alter database library set online with rollback immediate');
                parameters.ParamByName('p1').Value := self.OpenDialog1.FileName;
                try
                  ExecSQL;
                  ShowMessage('还原成功!!');
                except
                  Showmessage('还原失败!!');
                  exit;
                end;上面还原成功后,数据库library就变为脱机了,下面按理说就应该写代码使它成为连机状态,但不知道怎么写,请各位大哥指教,谢谢!!
             end;
      

  2.   

    adocommand1.CommandText:='Use master ALTER DATABASE 售后服务子系统 SET OFFLINE WITH ROLLBACK IMMEDIATE  restore database 售后服务子系统 from disk=:path With File=1, Replace ALTER DATABASE 售后服务子系统 SET ONLINE WITH ROLLBACK IMMEDIATE use 售后服务子系统';adocommand1.Parameters.ParamByName('path').Value :=trim(edit1.Text);一个小朋友写的:)
      

  3.   

    可能还原后  offline
    alter database  
    set  XXXX online
      

  4.   

    有问题啊, Set Offline后就不能Set Online了