我用的是adoconnection连接数据库,我的代码如下,不过我的代码在还原成功后,会显示说我数据库中的某个字段无效。
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
  if edit17.Text='' then
  begin
    MessageDlg('请选还原文件!',mtInformation,[mbok], 0);
  end
  else
  begin
  Label46.Caption:='请选择要还原的数据:'+'正在还原数据......';
  if Label46.Caption='请选择要还原的数据:'+'正在还原数据......' then
    begin
      Screen.Cursor:=crHourGlass;     // Data.ADOCon.Connected:=false;
      ADO_bak.Close;
      ADO_bak.SQL.Clear ;
      ADO_bak.SQL.Add('Use Master');
      ADO_bak.SQL.Add('ALTER DATABASE Credit SET OFFLINE WITH ROLLBACK IMMEDIATE');
      ADO_bak.SQL.Add('RESTORE DATABASE Credit') ;
      ADO_bak.SQL.Add('FROM disk='''+edit17.Text+'''');
      ADO_bak.SQL.Add('ALTER DATABASE Credit SET ONLINE WITH ROLLBACK IMMEDIATE');
      try
        ADO_bak.ExecSQL;
        MessageDlg('还原成功,请重启系统!',mtInformation,[mbok], 0);
        Label46.Caption:='请选择要还原的数据:';
        Screen.Cursor:=crDefault;
        form1.close;
      except
        MessageDlg('还原失败!',mtInformation,[mbok], 0);
        Label46.Caption:='请选择要还原的数据:';
        Screen.Cursor:=crDefault;
      end;
    end;
  end;
end;