⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backup.pas

📁 该程序采用delphi编写
💻 PAS
字号:
unit backup;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls, ComCtrls, DB, ADODB, Grids, DBGrids;

type
  Tbackupfm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    ADOQuery1: TADOQuery;
    SaveDialog1: TSaveDialog;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Panel2: TPanel;
    GroupBox2: TGroupBox;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    BitBtn2: TBitBtn;
    Edit2: TEdit;
    Button3: TButton;
    Button4: TButton;
    OpenDialog1: TOpenDialog;

    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
  function GetHostName : string;
    { Public declarations }
  end;

var
  backupfm: Tbackupfm;
  host : string;
implementation

{$R *.dfm}

Function Tbackupfm.GetHostName : string;
var
  Computername : array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
  size : Cardinal;
begin
  result :='';
  size :=MAX_COMPUTERNAME_LENGTH + 1;
  GetComputerName(Computername,size);
  result :=strpas(Computername);
end;

procedure Tbackupfm.FormCreate(Sender: TObject);
begin
  host := GetHostName;
  Adoquery1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ZlHotel;Data Source='+host+'';
end;

procedure Tbackupfm.BitBtn1Click(Sender: TObject);
begin
  if savedialog1.Execute then
    edit1.Text := savedialog1.FileName;
end;

procedure Tbackupfm.RadioButton2Click(Sender: TObject);
begin
  if RadioButton2.Checked then
  begin
    edit1.Enabled :=true;
    BitBtn1.Enabled := true;
  end
  else
  begin
    edit1.Enabled :=false;
    BitBtn1.Enabled :=false;
  end;
end;

procedure Tbackupfm.Button1Click(Sender: TObject);
begin
  if RadioButton1.Checked then
  try
    with adoquery1 do
    begin
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('backup database zlhotel to disk = ''zlhotel.bak'' with init');
      execsql;
    end;

    application.MessageBox('备份成功','提示',0);

    edit1.Text :='';
  except
    application.MessageBox('备份不成功','提示',0);
  end;
  if RadioButton2.Checked then
  try
    with adoquery1 do
    begin
      adoquery1.Close;
      sql.Clear;
      sql.Add('backup database zlhotel to disk='''+edit1.text+''' with init') ;
      execsql;
    end;

    application.MessageBox('备份成功','提示',0);

    edit1.Text :='';
    except
    application.MessageBox('备份不成功','提示',0);
  end;
end;

procedure Tbackupfm.Button2Click(Sender: TObject);
begin
  close;
end;

procedure Tbackupfm.RadioButton4Click(Sender: TObject);
begin
  if Radiobutton4.Checked then
  begin
    edit2.Enabled := true;
    BitBtn2.Enabled :=true;
  end
  else
  begin
    Edit2.Enabled :=false;
    BitBtn2.Enabled :=false;
  end;
end;

procedure Tbackupfm.Button3Click(Sender: TObject);
begin

   Adoquery1.ConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source='+host+'';
   if RadioButton3.Checked then
   try
     with adoquery1 do
     begin
        close;
        sql.Clear;
        sql.Add('alter database zlhotel set offline with rollback immediate');
        execsql;
        sql.Clear;
        sql.Add('restore database zlhotel from disk = ''zlhotel.bak'' with recovery');
        execsql;
     end;
     adoquery1.SQL.Clear;
     adoquery1.SQL.Add('alter database zlhotel set online with rollback immediate');
     adoquery1.ExecSQL;

     application.MessageBox('数据库还原成功,请重新启动服务器!','提示',0);

     edit2.Text :='';
   except
   
    application.MessageBox('数据库还原不成功','提示',0);

   end;
   if RadioButton4.Checked then
   try
     with adoquery1 do
     begin
        close;
        sql.Clear;
        sql.Add('alter database zlhotel set offline with rollback immediate');
        execsql;
        sql.Clear;
        sql.Add('restore database zlhotel from disk = '''+edit2.Text+''' with recovery');
        execsql;
     end;
     adoquery1.SQL.Clear;
     adoquery1.SQL.Add('alter database zlhotel set online with rollback immediate');
     adoquery1.ExecSQL;

     application.MessageBox('数据库还原成功,请重新启动服务器!','提示',0);

     edit2.Text :='';
   except
    application.MessageBox('数据库还原不成功','提示',0);
   
   end;
end;

procedure Tbackupfm.BitBtn2Click(Sender: TObject);
begin
  if opendialog1.Execute then
    edit2.Text := opendialog1.FileName;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -