📄 datamoduleunit.pas
字号:
//*-----------------------------------------------------------------------------
//* 系统名称:数据自动备份系统
//* 作 者:陈春华
//* 开发时间:2005
//* Windows2000 Server + SQL Server2000 + Delphi7
//* 功能简介:
//* 软件可自动完成SQL Server数据库和文档的数据定时自动备份,
//* 由用户选择对哪些数据库或文档进行数据备份,提供对备份、还原
//* 数据作业的管理、分析、日志跟踪等功能,备份频率不受限制。
//*-----------------------------------------------------------------------------
unit DataModuleUnit;
interface
uses
SysUtils, Classes, ExtCtrls, IniFiles;
type
TDM = class(TDataModule)
DBTimer1: TTimer; //-------------------------
DBTimer2: TTimer; //- 数据库自动备份定时装置
DBTimer3: TTimer; //-------------------------
FileTimer1: TTimer; //-------------------------
FileTimer2: TTimer; //- 文件自动备份定时装置(所有注解同数据库定时)
FileTimer3: TTimer; //-------------------------
procedure DBTimer1Timer(Sender: TObject);
procedure DBTimer2Timer(Sender: TObject);
procedure DBTimer3Timer(Sender: TObject);
procedure FileTimer1Timer(Sender: TObject);
procedure FileTimer2Timer(Sender: TObject);
procedure FileTimer3Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
{$R *.dfm}
uses VariableUnit, BackupThreadUnit, FileBackupThreadUnit, MainUnit;
procedure TDM.DBTimer1Timer(Sender: TObject);
var
backupThread: TBackupThread;
begin
//^ ---
if TimeToStr(now+StrToTime('00:02:00'))=TimeToStr(backupTime) then
begin
DBTimer2.Interval:=StrToInt(FloatToStr(frequency*3600*1000));
DBTimer2.Enabled:=True;
end;
//^ 提前2分钟启动频率计时器
//^ ---
if TimeToStr(now)=TimeToStr(backupTime) then
begin
MainForm.StatusBar1.Panels[0].Text:='数据库'+DBName+'备份中,请稍后...';
backupThread:=TBackupThread.Create(serverName,userName,pwsd,DBName,path);
backupThread.Resume;
DBTimer1.Enabled:=False;
end;
//^ 启动离系统启动最近一次备份
end;
procedure TDM.DBTimer2Timer(Sender: TObject);
begin
DBTimer3.Enabled:=True; // 定时启动秒级计时器
end;
procedure TDM.DBTimer3Timer(Sender: TObject);
var
backupThread: TBackupThread;
begin
//^ ---
if TimeToStr(now)=TimeToStr(backupTime) then
begin
MainForm.StatusBar1.Panels[0].Text:='数据库'+DBName+'备份中,请稍后...';
backupThread:=TBackupThread.Create(serverName,userName,pwsd,DBName,path);
backupThread.Resume;
DBTimer3.Enabled:=False;
end;
//^ 启动数据库备份线程
end;
procedure TDM.FileTimer1Timer(Sender: TObject);
var
fileBackupThread: TFileBackupThread;
inifile: TIniFile;
begin
if TimeToStr(now+StrToTime('00:02:00'))=TimeToStr(fileBackupTime) then
begin
fileTimer2.Interval:=StrToInt(FloatToStr(fileFrequency*3600*1000));
fileTimer2.Enabled:=True;
end;
if TimeToStr(now)=TimeToStr(fileBackupTime) then
begin
if FileExists(ExtractFilePath(ParamStr(0))+'\'+fileItemName+'.ini') then
begin
try
inifile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\'+fileItemName+'.ini');
fileFreeSize:=inifile.ReadFloat('备份设置','目的地址空间',fileFreeSize);
lastBackupTime:=inifile.readDateTime('备份设置','最近一次备份时刻',lastBackupTime);
finally
inifile.Free;
end;
end;
MainForm.StatusBar1.Panels[1].Text:='文件项目'+fileItemName+'备份中,请稍后...';
fileBackupThread:=TFileBackupThread.Create(fileSourceAdd,fileAmiAdd,fileItemName,lastBackupTime,fileFreeSize);
fileBackupThread.Resume;
fileTimer1.Enabled:=False;
end;
end;
procedure TDM.FileTimer2Timer(Sender: TObject);
begin
FileTimer3.Enabled:=True;
end;
procedure TDM.FileTimer3Timer(Sender: TObject);
var
fileBackupThread: TFileBackupThread;
inifile: TIniFile;
begin
if TimeToStr(now)=TimeToStr(backupTime) then
begin
if FileExists(ExtractFilePath(ParamStr(0))+'\'+fileItemName+'.ini') then
begin
try
inifile:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\'+fileItemName+'.ini');
fileFreeSize:=inifile.ReadFloat('备份设置','目的地址空间',fileFreeSize);
lastBackupTime:=inifile.ReadDateTime('备份设置','最近一次备份时刻',lastBackupTime);
finally
inifile.Free;
end;
end;
MainForm.StatusBar1.Panels[1].Text:='文件项目'+fileItemName+'备份中,请稍后...';
fileBackupThread:=TFileBackupThread.Create(fileSourceAdd,fileAmiAdd,fileItemName,lastBackupTime,fileFreeSize);
fileBackupThread.Resume;
FileTimer3.Enabled:=False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -