备份:
procedure TForm_jiaowu.Button8Click(Sender: TObject);
var
save:string;
begin
savedialog1.Filter:='备份文件(*.bak)|*.bak';
savedialog1.Title:='请选择备份路径';
if savedialog1.Execute then
   begin
      save:=savedialog1.FileName;
   end;
if save<>'' then
   begin
      with Q_data1 do
         begin
            try
            screen.Cursor:=crHourGlass;
            close;
            sql.Clear;
            sql.Add(' BACKUP DATABASE '+'教务管理系统'+ '  TO DISK =''' +save+'''');
            execsql;
            screen.Cursor:=crdefault;
            application.MessageBox('数据备份成功','提示',0+64);
            except
            screen.Cursor:=crdefault;
            application.MessageBox('数据库备份失败,请检查备份的路径或网络状态!','数据库备份',0+mb_iconinformation);
            end;
         end;
   end;
   tabsheet5show(nil);
end;
还原:
procedure TForm_jiaowu.Button9Click(Sender: TObject);
var
  dir : string;
begin
  try
    if OpenDialog1.Execute then
     begin
        dir:=OpenDialog1.FileName;       With Q_data do
        begin
          Close;
          SqL.Clear;
          SQL.Add('use master restore database 教务管理系统 from disk='+''''+dir+'''');
          ExecSQL;
          Close;
          SqL.Clear;
          SQL.Add('use  教务管理系统 ');
          ExecSQL ;
        end;        showmessage('恢复成功');
     end;
  except
    showmessage('恢复失败');
  end;
end;
备份成功以后,我删掉一条信息,然后点击还原,但是数据没有还原到备份时的状态,为什么呢??请高手看看。。

解决方案 »

  1.   

    是不是选错文件了我这样写的
    备份
        with tmp do
        begin
          sql.Clear;
          sql.Add('BACKUP DATABASE DevReport TO DISK='+#39+FileName+#39);
          //ShowMessage(sql.Text);
          ExecSql;
        end;
    还原
        with tmp do
        begin
          sql.Clear;
          sql.Add('use master alter database DevReport set offline WITH ROLLBACK IMMEDIATE');
          ExecSql;
        end;
        with tmp do
        begin
          sql.Clear;
          sql.Add('restore database DevReport from disk='''+FileName+''' with REPLACE');
          ExecSql;
        end;
        with tmp do
        begin
          sql.Clear;
          sql.Add('alter database DevReport set online with rollback immediate');
          ExecSql;
        end;