⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_enter_mrpaccount_b.pas

📁 一个MRPII系统源代码版本
💻 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 + -