📄 sys_enter_mrpaccount_b.pas
字号:
unit Sys_Enter_MrpAccount_B;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons,filectrl,adodb;
type
TFrm_Sys_Enter_MrpAccount_B = class(TForm)
btn_ok: TButton;
btn_cancel: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
selectdir: TSpeedButton;
edt_databasename: TEdit;
edt_bakdatabasename: TEdit;
edt_bakpath: TEdit;
edt_account: TEdit;
procedure selectdirClick(Sender: TObject);
procedure btn_okClick(Sender: TObject);
private
{ Private declarations }
public
function backupdatabase(databasename,bkdatabasename,backpath:string):boolean;
{ Public declarations }
end;
var
Frm_Sys_Enter_MrpAccount_B: TFrm_Sys_Enter_MrpAccount_B;
implementation
uses Sys_Enter_MrpAccount;
{$R *.DFM}
procedure TFrm_Sys_Enter_MrpAccount_B.selectdirClick(Sender: TObject);
var mydir:string;
begin
SelectDirectory(extractfilepath('mmc.exe'), '',mydir);
edt_bakpath.Text:=mydir;
end;
procedure TFrm_Sys_Enter_MrpAccount_B.btn_okClick(Sender: TObject);
begin
if length(trim(edt_bakdatabasename.Text))=0 then
begin
showmessage('备份数据库存名不能为空!');
edt_bakdatabasename.SetFocus;
exit;
end;
if length(trim(edt_bakpath.Text))=0 then
begin
showmessage('备份路径不能为空!');
edt_bakpath.SetFocus;
exit;
end;
if not backupdatabase(edt_databasename.text,edt_bakdatabasename.Text,edt_bakpath.Text) then
begin
showmessage('备份帐套数据失败!');
exit;
end;
modalresult:=mrok;
end;
function TFrm_Sys_Enter_MrpAccount_B.backupdatabase(databasename,
bkdatabasename, backpath: string): boolean;
var adoqry_tmp:Tadoquery;adoconnect:Tadoconnection;sqlstr,sqlstr0,sqlstr1:string;
begin
result:=true;
try
adoconnect:=Tadoconnection.Create(self);
adoqry_tmp:=Tadoquery.Create(self);
sqlstr0:='exec sp_dropdevice '+quotedstr(bkdatabasename);
sqlstr:='exec sp_addumpdevice '+quotedstr('disk')+', '+quotedstr(bkdatabasename)+', '+quotedstr(backpath+'\'+bkdatabasename+'.bak');
sqlstr1:='backup database '+databasename+' to '+bkdatabasename;
adoconnect.LoginPrompt:=false;
adoconnect.ConnectionString:='Provider=SQLOLEDB.1;Password='+Frm_Sys_Enter_MrpAccount.adoqry_head.fieldbyname('systempassword').asstring+';Persist Security Info=True;User ID='+Frm_Sys_Enter_MrpAccount.adoqry_head.fieldbyname('systemname').asstring+';Initial Catalog=master;Data Source='+Frm_Sys_Enter_MrpAccount.adoqry_head.fieldbyname('servername').asstring+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096';
adoconnect.Connected:=true;
adoqry_tmp.Connection:=adoconnect;
adoconnect.BeginTrans;
with adoqry_tmp do
begin
close;
sql.Clear;
sql.Add(sqlstr0);
prepared;
try
screen.Cursor:=crsqlwait;
execsql;
screen.Cursor:=crdefault;
except
result:=false;
adoconnect.RollbackTrans;
end;
close;
sql.Clear;
sql.Add(sqlstr);
prepared;
try
screen.Cursor:=crsqlwait;
execsql;
screen.Cursor:=crdefault;
except
result:=false;
adoconnect.RollbackTrans;
end;
close;
sql.Clear;
sql.Add(sqlstr1);
prepared;
try
screen.Cursor:=crsqlwait;
execsql;
showmessage('备份帐套数据成功!');
except
result:=false;
adoconnect.RollbackTrans;
end;
end;
adoconnect.CommitTrans;
finally
adoqry_tmp.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -