怎么用DELPHI备份数据库啊?在线等

解决方案 »

  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.   

    就是SQL语句啊
    RESTORE DATABASE 和 BACKUP DATABASE剩下的就是用adoquery来执行了。
      

  3.   

    如果是sql server,那么使用它的存储过程或者按照“旺仔”大人说的。如果是access,那最简单的办法就是拷贝文件。