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

📄 filebackupdesignunit.pas

📁 软件可自动完成SQL Server数据库和文档的数据定时自动备份
💻 PAS
字号:
//*-----------------------------------------------------------------------------
//*  系统名称:数据自动备份系统
//*  作    者:陈春华
//*  开发时间:2005
//*  Windows2000 Server + SQL Server2000 + Delphi7
//*  功能简介:
//*              软件可自动完成SQL Server数据库和文档的数据定时自动备份,
//*          由用户选择对哪些数据库或文档进行数据备份,提供对备份、还原
//*          数据作业的管理、分析、日志跟踪等功能,备份频率不受限制。
//*-----------------------------------------------------------------------------

unit FileBackupDesignUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Mask, FileCtrl, IniFiles, jpeg;

type
  TFileBackupDesignForm = class(TForm)
    Image1: TImage;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    Button2: TButton;
    Label3: TLabel;
    Edit3: TEdit;
    ComboBox1: TComboBox;
    Button3: TButton;
    Button4: TButton;
    CB1: TCheckBox;
    CB2: TCheckBox;
    Label5: TLabel;
    MaskEdit1: TMaskEdit;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    SaveDialog: TSaveDialog;
    Label8: TLabel;
    Edit5: TEdit;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FileBackupDesignForm: TFileBackupDesignForm;

implementation

uses DataModuleUnit, VariableUnit, MainUnit;

{$R *.dfm}
var
  isRemote:Boolean=False;
procedure TFileBackupDesignForm.Button1Click(Sender: TObject);
var
  odir: String;
begin
  if not SelectDirectory('请选择备份文件源地址','',odir) then
    exit
  else
    Edit1.Text:= odir;
end;

procedure TFileBackupDesignForm.Button2Click(Sender: TObject);
var
  odir: String;
begin
  if not SelectDirectory('请选择备份文件目的地址,文件将备份到指定位置','',odir) then
    exit
  else
    begin
      Edit2.Text:= odir;
      if Copy(odir,1,2)='\\' then   //本地、远程判断,并分别设置
        begin
          isRemote:=True;
          Edit3.Enabled:=True;
          Edit3.Color:=clWindow;
          ComboBox1.Enabled:=True;
          ComboBox1.Color:=clWindow;
          Edit3.Text:='';
          ComboBox1.Text:='GB';
        end
      else
        begin
          isRemote:=False;
          Edit3.Enabled:=False;
          Edit3.Color:=clBtnFace;
          ComboBox1.Enabled:=False;
          ComboBox1.Color:=clBtnFace;
          Edit3.Text:='';
          ComboBox1.Text:='';
        end;
    end;
end;

procedure TFileBackupDesignForm.Button3Click(Sender: TObject);
var
  inifile: TIniFile;
  sizeTemp:real;
begin
  if Edit5.Text='' then
    begin
      showMessage('备份项目名称不能为空!');
      Exit;
    end;
  if Edit1.Text='' then
    begin
      showMessage('请输入要备份的文件地址!');
      Exit;
    end;
  if Edit2.Text='' then
    begin
      showMessage('请输入备份文件的目的地址!');
      Exit;
    end;
  if isRemote then
    begin
      if Edit3.Text='' then
        begin
          showMessage('请输入远程地址空间!');
          Exit;
        end;
    end;
  if MaskEdit1.Text='  :  ' then
    begin
      showMessage('请输入备份时刻!');
      Exit;
    end;
  if (Edit4.Text='') or (StrToFloat(Edit4.Text)<24)then
    begin
      showMessage('同一天只备份一次,频率必须大于24小时!');
      Exit;
    end;
  fileItemName:=Edit5.Text;
  fileSourceAdd:=Edit1.Text;
  fileAmiAdd:=Edit2.Text;
  //^---
  if isRemote then
    begin
      if  ComboBox1.Text='字节' then
        sizeTemp:=StrToFloat(Edit3.Text)/1024/1024
      else if ComboBox1.Text='KB' then
        sizeTemp:= StrToFloat(Edit3.Text)/1024
      else if ComboBox1.Text='MB' then
        sizeTemp:= StrToFloat(Edit3.Text)
      else if ComboBox1.Text='GB' then
        sizeTemp:= StrToFloat(Edit3.Text)*1024;
    end
  else
    sizeTemp:=Abs(DiskFree(Ord(Edit2.Text[1])-64))/1024/1024;
  fileFreeSize:=sizeTemp;
  //^ 剩余空间计算
  fileBackupTime:=StrToTime(MaskEdit1.Text);
  fileFrequency:=StrToFloat(Edit4.Text);
  lastBackupTime:= strToDateTime('1900-01-01 00:00:00');  //初始化控制时间
  if CB1.Checked then
    begin
      SaveDialog.InitialDir:= ExtractFilePath(ParamStr(0));
      SaveDialog.FileName:=fileItemName;
      if SaveDialog.Execute then
        begin
           try
             inifile:=TIniFile.Create(SaveDialog.FileName+'.ini');
             try
               with inifile do
                 begin
                   writeString('备份设置','备份项目名称',fileItemName);
                   writeString('备份设置','备份文件源地址',fileSourceAdd);
                   writeString('备份设置','备份文件目的地址',fileAmiAdd);
                   WriteFloat('备份设置','目的地址空间',fileFreeSize);
                   WriteTime('备份设置','定时时刻',fileBackupTime);
                   WriteFloat('备份设置','备份频率',fileFrequency);
                   WriteDateTime('备份设置','最近一次备份时刻',lastBackupTime);
                 end;
                 showMessage('设置文件已保存至'+SaveDialog.FileName+'.ini');
              except
                 showMessage('保存失败!');
              end;
           finally
             inifile.Free;
           end;
        end;
    end;

  if CB2.Checked then
    begin
      DM.FileTimer1.Enabled:=True;
      MainForm.N4.Enabled:=False;
    end;
  fileHaveFinishedSet:=True;
  self.close;
end;

procedure TFileBackupDesignForm.Button4Click(Sender: TObject);
begin
  close;
end;

procedure TFileBackupDesignForm.FormShow(Sender: TObject);
begin
  Edit5.Text:='';
  Edit1.Text:='';
  Edit2.Text:='';
  Edit3.Text:='';
  Edit4.Text:='';
  ComboBox1.Text:='';
  Edit3.Enabled:=False;
  ComboBox1.Color:=clBtnFace;
  Edit3.Color:=clBtnFace;
  ComboBox1.Enabled:=False;
  MaskEdit1.Text:='  :  ';
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add('字节');
  ComboBox1.Items.Add('KB');
  ComboBox1.Items.Add('MB');
  ComboBox1.Items.Add('GB');
end;

end.

⌨️ 快捷键说明

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