backup  database myhouse to disk='E:\database\mycustom1.bak'可以顺利执行而 restore database myhouse from disk='E:\database\mycustom1.bak'则会报服务器: 消息 3101,级别 16,状态 1,行 1
因为数据库正在使用,所以未能获得对数据库的排它访问权。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。请问怎么回事

解决方案 »

  1.   

    procedure TForm23.Button2Click(Sender: TObject);
    begin
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('use master;Restore database myhouse From disk=''E:\database\mycustom1.bak'';Use myhouse');
    adoquery1.ExecSQL;
    application.MessageBox('数据库完成恢复','警告',MB_OK);
    end
      

  2.   

    你肯定是和所要恢复的数据库有一个连接,可以先连接到master数据库,然后运行恢复语句
      

  3.   

    同意 wnsr() 的说法,可是我用的是bde控件,可以再同时使用ado控件吗?
      

  4.   

    去掉ado就行了
    procedure TForm23.Button2Click(Sender: TObject);
    begin
    query1.SQL.Clear;
    query1.SQL.Add('use master;Restore database myhouse From disk=''E:\database\mycustom1.bak'';Use myhouse');
    query1.ExecSQL;
    application.MessageBox('数据库完成恢复','警告',MB_OK);
    end
      

  5.   

    呵呵,奇怪,用bde控件写就会报‘ 数据库正在使用,无法执行’而用qdo控件可以顺利恢复数据库