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

📄 udatecontrol.pas

📁 是个办公系统,可以实现财务上的管理和人员的流动
💻 PAS
字号:
unit Udatecontrol;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons,IniFiles,ADODB;

type
  TfrmDatacontrol = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    bbtnView1: TBitBtn;
    Edit2: TEdit;
    bbtnView2: TBitBtn;
    bbtnBakup: TBitBtn;
    bbtnRestore: TBitBtn;
    ProgressBar1: TProgressBar;
    GroupBox2: TGroupBox;
    RichEdit1: TRichEdit;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    procedure bbtnView1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnBakupClick(Sender: TObject);
    procedure bbtnRestoreClick(Sender: TObject);
    procedure bbtnView2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TbackupThread=class(TThread)
    sender:Tobject;
    command:TADOCOmmand;
    parent:Tform;
    folder:string;
  procedure Backup;
  private
  protected
  procedure Execute;override;
end;

type
  TrestoreThread=class(TThread)
    sender:Tobject;
    parent:Tform;
    command:TADOCOmmand;
    folder:string;
  procedure restore;
  private
  protected
  procedure Execute;override;
end;

var
  frmDatacontrol: TfrmDatacontrol;
  SetIni:TIniFile;
implementation

uses Umain, MyData;

{$R *.dfm}
//备份
procedure Tbackupthread.backup;
begin
  try
    command.CommandText:='backup database NYOA to disk='+''''+folder+'''';
    command.Execute;
  except
    exit;
  end;
  self.Terminate;
end;

procedure TbackupThread.Execute;
var
  i:integer;
begin
  i:=0;
  synchronize(backup);
  while  i< Tprogressbar(sender).Max do
  begin
    inc(i);
    Tprogressbar(sender).Position:=i;
  end;
  Application.MessageBox('备份成功.','提示',64);
  parent.Close;
end;
//还原
procedure Trestorethread.restore;
begin
  try
    command.CommandText:='use master restore database NYOA from disk='+''''+folder+'''';
    command.Execute;
    Command.CommandText:='use NYOA';
    Command.Execute;
    Application.MessageBox('还原结束.','提示',64);
  except
    Application.MessageBox('系统出错.','提示',64);
  end;
  self.Terminate;
end;

procedure TrestoreThread.Execute;
var
  i:integer;
begin
  i:=0;
  while  i< Tprogressbar(sender).Max do
  begin
    inc(i);
    Tprogressbar(sender).Position:=i;
  end;
  parent.Close;
  end;

procedure TfrmDatacontrol.bbtnView1Click(Sender: TObject);
var
 Path:string;
begin
 if SaveDialog1.Execute then
  begin
    Path:=SaveDialog1.FileName;
    SetIni.WriteString('BakupPath','Path',ExtractFilePath(Application.ExeName)+'NYOA.bak');
    Edit1.Text:=Path;
  end;
end;

procedure TfrmDatacontrol.FormCreate(Sender: TObject);
begin
   SetIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Bakup.ini');
   Edit1.Text:=SetIni.ReadString('BakupPath','Path',ExtractFilePath(Application.ExeName)+'NYOA.bak');
   ProgressBar1.Position:=ProgressBar1.Width;
end;

procedure TfrmDatacontrol.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TfrmDatacontrol.bbtnBakupClick(Sender: TObject);
var
 Bakup:TbackupThread;
begin
 Bakup:=TbackupThread.Create(True);
 Bakup.sender:=ProgressBar1;
 Bakup.command:=dm.ADOCMD;
 Bakup.parent:=Self;
 Bakup.folder:=Edit1.Text;
 Bakup.Resume;
end;

procedure TfrmDatacontrol.bbtnRestoreClick(Sender: TObject);
var
  restore:Trestorethread;
begin
  restore:=Trestorethread.Create(true);
  restore.sender:=progressbar1;
  //restore.Position:=IntToStr(position);
  restore.folder:=Edit2.Text;
  restore.command:=dm.ADOCMD;
  restore.parent:=self;
  restore.Resume;
  restore.StaticSynchronize(restore,restore.restore);
end;
procedure TfrmDatacontrol.bbtnView2Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
   begin
     Edit2.Text:=OpenDialog1.FileName;
   end;
end;

end.

⌨️ 快捷键说明

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