备份Access 数据库并用WinRar压缩加密

来源:互联网 发布:淘宝女装店铺简介大全 编辑:程序博客网 时间:2024/04/30 13:39

{

Alvin Ye 叶冬开

keywork : Access 数据库 备份  winexec winrar 压缩 加密

}

unit uBak;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,FileCtrl;

type
  TfBak = class(TForm)
    Label1: TLabel;
    eFilePath: TEdit;
    btnSelPath: TButton;
    btnBak: TButton;
    procedure FormShow(Sender: TObject);
    procedure btnBakClick(Sender: TObject);
    procedure btnSelPathClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fBak: TfBak;

implementation

uses uDM, StrUtils;

{$R *.dfm}

procedure TfBak.FormShow(Sender: TObject);
begin

//选择目录
  eFilePath.Text:=ExtractFilePath(Application.ExeName)+'BAk/';
  btnBak.Enabled:=TRUE;

end;

procedure TfBak.btnBakClick(Sender: TObject);
const
  RarFilePwd:String='Pwd';
var
  datafiledir:string;
  rarappdir:string;
  szcmd:string;
  backuptodir:string;
begin
  btnBak.Enabled:=False;

//如果没有目录,就建
  if not DirectoryExists(eFilePath.Text) then MkDir(eFilePath.Text);

//判断目录是否完整

  if RightStr(eFilePath.Text,1)<>'/' then eFilePath.Text:=eFilePath.Text+'/';

  datafiledir:=ExtractFilePath(Application.ExeName)+'Data.mdb';
  rarappdir:=ExtractFilePath(Application.ExeName)+'Winrar.exe';
  dm1.dbconn.Close;
  dm1.dbconn.ConnectionString:='';
  backuptodir:=trim(eFilePath.Text)+'Backup'+FormatDateTime('yymmddhhmmss',Now)+'.ydk';

  szcmd:=rarappdir+' a '+backuptodir+' '+datafiledir+ ' -ibck -p'+RarFilePwd;

  WinExec(pchar(szcmd),SW_HIDE);

  if FileExists(backuptodir) then
    Application.MessageBox('备份完成',pchar(APPNAME),MB_ICONINFORMATION)
  else
    Application.MessageBox('备份失败',pchar(APPNAME),MB_ICONINFORMATION);

  dm1.dbconn.Connected:=True;
  btnBak.Enabled:=True;

end;

procedure TfBak.btnSelPathClick(Sender: TObject);
var
  datafiledir:string;
begin
  if SelectDirectory('请选择备份目录','',datafiledir) then eFilePath.Text:=datafiledir;
end;

end.

原创粉丝点击