📄 backupb.pas
字号:
unit backupB;
interface
//uses
//Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
//Dialogs, StdCtrls, Buttons, DB, ADODB,inifiles;
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ImgList, jpeg, DB, ADODB,
ShellApi, StrUtils, ToolWin,inifiles;
type
TF_backupB = class(TForm)
Label2: TLabel;
Edit1: TEdit;
Btn: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1: TADOQuery;
SaveDialog1: TSaveDialog;
BitBtn3: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BtnClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
ssFile:string;
public
{ Public declarations }
end;
var
F_backupB: TF_backupB;
myinifile:Tinifile;
implementation
uses data;
{$R *.dfm}
procedure TF_backupB.BitBtn2Click(Sender: TObject);
begin
F_backupB.Close;
end;
procedure TF_backupB.BtnClick(Sender: TObject);
var
s:string;
i,j:integer;
begin
if savedialog1.Execute then
edit1.Text:=SaveDialog1.Files[0];
s:= edit1.Text;
i:= pos('\',s);
while i>0 do
begin
j:= length(s);
s:=copy(s, i+1,j- i);
i:= pos('\',s);
end;
ssFile:=AnsiReplaceStr(s,'.bak','');
edit1.Enabled := false;
end;
procedure TF_backupB.BitBtn1Click(Sender: TObject);
var
Query:TADOQuery;
begin
if edit1.Text ='' then
begin
showmessage('请选择目标路径和输入备份文件名(*.bak)');
edit1.SetFocus ;
exit;
end;
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
Query.SQL.Add('backup database JXC1 TO ');
Query.SQL.Add('DISK = '''+edit1.Text +''' WITH NOINIT , ');
Query.SQL.Add('NOUNLOAD , NAME = ''college 备份'', ');
Query.SQL.Add('NOSKIP , STATS = 10, NOFORMAT ');
DataModuleADO.ADOConnection1.begintrans;
try
Query.ExecSQL ;
DataModuleADO.ADOConnection1.committrans;
showmessage('备份成功!');
except
DataModuleADO.ADOConnection1.rollbacktrans;
showmessage('备份失败,请重试!');
end;
end;
procedure TF_backupB.BitBtn3Click(Sender: TObject);
var
s,s1,s2,s3,s4:string;
filename:string;
sDB:string;
Currentdir:string;
strMDBPlace:string;
j:integer;
Query:TADOQuery;
begin
if edit1.Text ='' then
begin
showmessage('请选择目标路径和恢复文件名(*.bak)');
edit1.SetFocus ;
exit;
end;
if edit1.Text ='' then
begin
showmessage('请选择要恢复的文件名(*.bak)');
edit1.SetFocus ;
exit;
end;
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
Query.CommandTimeout:=120;
Query.SQL.Add('use master');
Query.SQL.Add('alter database '+ssFile+' set offline WITH ROLLBACK IMMEDIATE');
Query.SQL.Add('restore database '+ssFile+' from disk='''+edit1.text+''''+' with REPLACE ');
Query.SQL.Add('alter database '+ssFile+' set online with rollback immediate');
DataModuleADO.ADOConnection1.begintrans;
try
Query.ExecSQL ;
DataModuleADO.ADOConnection1.committrans;
showmessage('恢复成功!');
DataModuleADO.SetConn;
//Application.Terminate;
except
DataModuleADO.ADOConnection1.rollbacktrans;
showmessage('恢复失败,请重试!');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -