📄 waitpas1.pas
字号:
{数据备份、还原}
unit WaitPas1;
interface
uses
Classes, Windows, SysUtils, Dialogs, ADODB ;
type
WaitPas = class(TThread)
Filename : String; //往线程中注入备份或还原的文件名
Messages : String; //显示信息
IDs : Integer; //识别应该执行什么样的操作
ADOQ : TADOQuery;
//备份文件
function BackUpData:Boolean;
//还原文件
function RevertData:Boolean;
//关闭等待窗口
procedure CloseWaitWindow;
//更新等待窗口信息
procedure PostMessgesToWaitWindow;
private
{ Private declarations }
protected
procedure Execute; override;
public
constructor Create(CaseS: TADOQuery; FileNames:String;LoadID:integer);
end;
implementation
uses wait,DBM;
{ WaitPas }
function WaitPas.BackUpData:Boolean;
begin
Messages:='正在备份数据库,请稍候……';
Synchronize(PostMessgesToWaitWindow);
with ADOQ do try
Close;
SQL.Clear;
SQL.Add('backup database bargain to disk='+#39+FileName+#39+' WITH INIT');
Prepared;
Execsql;
Result:=true;
except
Result:=false;
end;
end;
procedure WaitPas.CloseWaitWindow;
begin
WaitForm.Close;
end;
constructor WaitPas.Create(CaseS: TADOQuery; FileNames: String; LoadID: Integer);
begin
//初始化进程
IDs := LoadID;
ADOQ := CaseS;
FileName := FileNames;
inherited Create(False);
end;
procedure WaitPas.Execute;
var IsSucceed : Boolean;
begin
IsSucceed:=false;
case IDs of
1 : IsSucceed := BackUpData; //备份
2 : IsSucceed := RevertData; //还原
end;
Synchronize(CloseWaitWindow);
if IsSucceed then
Messagebox(0,'数据库维护操作成功!','提示',MB_OK+MB_ICONINFORMATION+MB_TOPMOST)
ELSE ShowMessage('操作失败!!');
{ Place thread code here }
end;
procedure WaitPas.PostMessgesToWaitWindow;
begin
WaitForm.RzLabel1.Caption:=Messages;
end;
function WaitPas.RevertData: Boolean;
begin
Messages:='正在还原数据库,请稍候……';
Synchronize(PostMessgesToWaitWindow);
with ADOQ do try
Close;
SQL.Clear;
sql.Add('use master');
sql.Add('ALTER DATABASE bargain SET OFFLINE WITH ROLLBACK IMMEDIATE');
sql.Add('RESTORE DATABASE bargain FROM DISK ='''+(FileName)+''' with FILE=1,RECOVERY,REPLACE');
sql.Add('ALTER DATABASE bargain SET ONLINE WITH ROLLBACK IMMEDIATE');
SQL.Add('Use bargain');
Prepared;
execsql;
Result:=true;
except
Result:=false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -