请问delphi7如何备份和恢复数据库(ACCESS或SQL SERVER)
希望能给出2种方法的代码,谢谢

解决方案 »

  1.   

    unit BackUpRestore;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ExtCtrls;type
      TdlgBackUpRestore = class(TForm)
        btBackUp: TSpeedButton;
        btRestore: TSpeedButton;
        Label1: TLabel;
        btClose: TSpeedButton;
        OpenDialog1: TOpenDialog;
        Image1: TImage;
        procedure btBackUpClick(Sender: TObject);
        procedure btRestoreClick(Sender: TObject);
        procedure btCloseClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      dlgBackUpRestore: TdlgBackUpRestore;implementationuses DMu, PubDB;{$R *.dfm}procedure TdlgBackUpRestore.btBackUpClick(Sender: TObject);
    begin
      Caption := '正在备份数据库...';
      with DM.T do
      begin
        Close;
        SQL.Text := 'BACKUP DATABASE [Dress] TO DISK = ''' + FORMATDATETIME('YYYYMMDD', GetServerDateTime) + ''' WITH NOFORMAT, SKIP, NOUNLOAD, STATS = 10';
        try
          ExecSQL;
          Caption := '祝贺您, 数据备份操作成功';
          btBackup.Enabled := False;
        except
          Application.MessageBox('操作失败, 请检查磁盘的写保护!', '提示', MB_OK);
          Abort;
        end;//try
      end;//with DM.T do
    end;procedure TdlgBackUpRestore.btRestoreClick(Sender: TObject);
    var
      sFileName: ShortString;
    begin
      if MessageDlg('真的要恢复数据库吗?此操作将不可逆转!', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        Caption := '正在恢复数据库...';
        if OpenDialog1.Execute then
        begin
          sFileName := TRIM(OpenDialog1.Files.Text);
          with DM.T do
          begin
            Close;
            SQL.Text := 'RESTORE DATABASE [Dress] FROM DISK = ''' + sFileName + ''' WITH FILE = 1, RECOVERY, NOUNLOAD, STATS = 10';
            try
              ExecSQL;
              Caption := '祝贺您, 数据恢复操作成功';
              btRestore.Enabled := False;
            except
              Application.MessageBox('操作失败, 数据库使用中或者路径有误!', '提示', MB_OK);
              Abort;
            end;//try
          end;//with DM.T do
        end;//OpenDialog1.Execute then
      end;//mrYes
    end;procedure TdlgBackUpRestore.btCloseClick(Sender: TObject);
    begin
      Close;
    end;end.
      

  2.   

    用Delphi调用SQL Server的备份命令with Query1 do
    begin
      Clear;
      SQL.Add('backup database mydb to disk = ''c:\bak\20010608.dat'' ');
      ExecSQL;
    end;
      

  3.   

    Access数据库你只要把数据库文件(*。MDB)复制成到指定的备份文件就行了。
    恢复时把他们复制回来。别忘了恢复时不要使用数据库