?? datamoduleunit.pas
字號(hào):
//*-----------------------------------------------------------------------------
//* 系統(tǒng)名稱:數(shù)據(jù)自動(dòng)備份系統(tǒng)
//* 作 者:陳春華
//* 開發(fā)時(shí)間:2005
//* Windows2000 Server + SQL Server2000 + Delphi7
//* 功能簡(jiǎn)介:
//* 軟件可自動(dòng)完成SQL Server數(shù)據(jù)庫(kù)和文檔的數(shù)據(jù)定時(shí)自動(dòng)備份,
//* 由用戶選擇對(duì)哪些數(shù)據(jù)庫(kù)或文檔進(jìn)行數(shù)據(jù)備份,提供對(duì)備份、還原
//* 數(shù)據(jù)作業(yè)的管理、分析、日志跟蹤等功能,備份頻率不受限制。
//*-----------------------------------------------------------------------------
unit DataModuleUnit;
interface
uses
SysUtils, Classes, ExtCtrls, IniFiles;
type
TDM = class(TDataModule)
DBTimer1: TTimer; //-------------------------
DBTimer2: TTimer; //- 數(shù)據(jù)庫(kù)自動(dòng)備份定時(shí)裝置
DBTimer3: TTimer; //-------------------------
FileTimer1: TTimer; //-------------------------
FileTimer2: TTimer; //- 文件自動(dòng)備份定時(shí)裝置(所有注解同數(shù)據(jù)庫(kù)定時(shí))
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分鐘啟動(dòng)頻率計(jì)時(shí)器
//^ ---
if TimeToStr(now)=TimeToStr(backupTime) then
begin
MainForm.StatusBar1.Panels[0].Text:='數(shù)據(jù)庫(kù)'+DBName+'備份中,請(qǐng)稍后...';
backupThread:=TBackupThread.Create(serverName,userName,pwsd,DBName,path);
backupThread.Resume;
DBTimer1.Enabled:=False;
end;
//^ 啟動(dòng)離系統(tǒng)啟動(dòng)最近一次備份
end;
procedure TDM.DBTimer2Timer(Sender: TObject);
begin
DBTimer3.Enabled:=True; // 定時(shí)啟動(dòng)秒級(jí)計(jì)時(shí)器
end;
procedure TDM.DBTimer3Timer(Sender: TObject);
var
backupThread: TBackupThread;
begin
//^ ---
if TimeToStr(now)=TimeToStr(backupTime) then
begin
MainForm.StatusBar1.Panels[0].Text:='數(shù)據(jù)庫(kù)'+DBName+'備份中,請(qǐng)稍后...';
backupThread:=TBackupThread.Create(serverName,userName,pwsd,DBName,path);
backupThread.Resume;
DBTimer3.Enabled:=False;
end;
//^ 啟動(dòng)數(shù)據(jù)庫(kù)備份線程
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('備份設(shè)置','目的地址空間',fileFreeSize);
lastBackupTime:=inifile.readDateTime('備份設(shè)置','最近一次備份時(shí)刻',lastBackupTime);
finally
inifile.Free;
end;
end;
MainForm.StatusBar1.Panels[1].Text:='文件項(xiàng)目'+fileItemName+'備份中,請(qǐng)稍后...';
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('備份設(shè)置','目的地址空間',fileFreeSize);
lastBackupTime:=inifile.ReadDateTime('備份設(shè)置','最近一次備份時(shí)刻',lastBackupTime);
finally
inifile.Free;
end;
end;
MainForm.StatusBar1.Panels[1].Text:='文件項(xiàng)目'+fileItemName+'備份中,請(qǐng)稍后...';
fileBackupThread:=TFileBackupThread.Create(fileSourceAdd,fileAmiAdd,fileItemName,lastBackupTime,fileFreeSize);
fileBackupThread.Resume;
FileTimer3.Enabled:=False;
end;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -