我的数据库还原代码如下:
procedure TDataBack.RecoverDataClick(Sender: TObject);
var DataPath: string;
begin
  self.Caption := '正在恢复数据....';
  adodm.XQconn.Close;
  adodm.XQconn.Connected := false;
  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
      a1.Active := true;
      adodm.cback.CommandText := 'restore database XQ from disk=''' + DataPath + '''' + ' with replace'; //恢复数据命令语句
      try
        try
          adodm.cback.Execute;
          //执行恢复过程
          showmessage('    恢复成功!');
        except
          showmessage('数据库正在被使用!请确定已关闭其它使用该数据库程序!');
          showmessage('    恢复失败!');
        end;
      finally
        a1.Active := false;
        try
        // 打开各个数据表是否有错误
          adodm.YHTS.Open;
          adodm.part.Open;
          adodm.client.Open;
          adodm.Toper.Open;
          adodm.Tuser.Open;
          adodm.ZHBX.Open;
          adodm.Model.Open;
          adodm.ClientFamily.Open;
          adodm.ChargeItem.Open;
          adodm.ClientRoom.Open;
          adodm.Charge.Open;
          adodm.ClientPay.Open;
          adodm.ClientAdvance.Open;
        except
          showmessage('程序运行发生不可预知错误,请重新启动程序!');
          //结束该程序
          Application.Terminate;
        end;
      end;
    end;
  end;
  self.Caption := '数据备份和恢复';
end;
我数据模块ADODM里有两个ADOCONNECTION。一个连接用户数据库(XQCONN);一个连接了(BACKCONN)MASTER,可是运行还原数据库时候,总出现数据库正在使用的问题。请各位高手赐教啦……CBACK:TADOCOMMAND它是连接BACKCONN的。