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

📄 u_saveorrestore.pas

📁 设备巡检操作系统 本程序是专门为某电厂开发的设备巡检系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit U_SaveOrRestore;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ComCtrls,Adodb,DB, ExtCtrls;
const
  bProvider='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;Jet OLEDB:Database Password=zhangzhifang1981';
type
  TFrm_SaveOrRestore = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    SpeedButton1: TSpeedButton;
    Label1: TLabel;
    Edit2: TEdit;
    Button3: TButton;
    Button4: TButton;
    SpeedButton2: TSpeedButton;
    Open1: TOpenDialog;
    Save1: TSaveDialog;
    Panel1: TPanel;
    procedure Button2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    adRconn:TADOConnection;
    appPath:String;
    procedure backup1(adcon:TADOConnection);
    procedure backup2(adcon:TADOConnection);
    procedure backup3(adcon:TADOConnection);
    procedure backup4(adcon:TADOConnection);
    procedure backup5(adcon:TADOConnection);
    procedure backup6(adcon:TADOConnection);
    procedure backup7(adcon:TADOConnection);
    procedure Restore1(adcon:TADOConnection);
    procedure Restore2(adcon:TADOConnection);
    procedure Restore3(adcon:TADOConnection);
    procedure Restore4(adcon:TADOConnection);
    procedure Restore5(adcon:TADOConnection);
    procedure Restore6(adcon:TADOConnection);
    procedure Restore7(adcon:TADOConnection);
  public
    { Public declarations }
  end;

var
  Frm_SaveOrRestore: TFrm_SaveOrRestore;

implementation

uses Undm, UnFuntion;

{$R *.dfm}

procedure TFrm_SaveOrRestore.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TFrm_SaveOrRestore.SpeedButton1Click(Sender: TObject);
begin
  try
  Save1.Filter:='点检备份文件(*.xdj)|*.xdj|Oracle文件|*.dmp|所有文件|*.*';
  if Save1.Execute then
  begin
    edit1.Text:=Save1.FileName;
  end;
  except
    ShowMessage('备份出错!');
  end;
end;

procedure TFrm_SaveOrRestore.SpeedButton2Click(Sender: TObject);
begin
  try
  Open1.Filter:='点检备份文件(*.xdj)|*.xdj|Oracle文件|*.dmp|所有文件|*.*';
  if Open1.Execute then
  begin
    edit2.Text:=Open1.FileName;
  end;
  except
    ShowMessage('恢复出错!');
  end;
end;

procedure TFrm_SaveOrRestore.Button1Click(Sender: TObject);
var
  BadoConn:TADOConnection;
  str:String;
begin
  if Edit1.Text='' then Exit;
  if Pos('.',edit1.Text)<=0 then  str:=Edit1.Text+'.xdj'
  else str:=Edit1.Text;
  edit1.Text:=str;
  if not FileExists(appPath+'plugin\'+'djbk') then begin
    Application.MessageBox('对不起,系统文件已破坏,请重新安装原程序!','提示',MB_OK+MB_ICONINFORMATION);
    exit;
  end;
  if FileExists(str) then
  begin
    if  MessageBox(self.Handle,'文件已存在,你真的想覆盖原文件么?','备份提示',MB_YESNO+MB_ICONQUESTION)=idno then
      Exit
    else
      DeleteFile(str);
  end;
  CopyFile(pchar(appPath+'plugin\'+'djbk'),pchar(edit1.Text),true);//备份文件
  BadoConn:=TADOConnection.Create(self); BadoConn.LoginPrompt:=false;
  BadoConn.ConnectionString:=Format(bProvider,[edit1.Text]);
  panel1.Visible:=True;
  Panel1.Caption:='正在备份数据.........';
  Panel1.Align:=alClient;

  try
  BadoConn.Connected:=True;
  backup1(BadoConn);
  backup2(BadoConn);
  backup3(BadoConn);
 try
  backup4(BadoConn);
  except end;
  backup5(BadoConn);
  backup6(BadoConn);
 try
  backup7(BadoConn);
  except
  end;
  BadoConn.Connected:=False;
    Application.MessageBox('数据备份成功!','提示');
  except
    Application.MessageBox('数据备份失败!','提示');
    BadoConn.Free;
  end;
  Panel1.Visible:=False;
end;

//t_part,t_eupet,t_checkpt,t_employee,t_dept,t_perplan,t_bdata



procedure TFrm_SaveOrRestore.Button3Click(Sender: TObject);
var
  BadoConn:TADOConnection;
  str:string;
begin
  if Edit2.Text='' then Exit;
  if Pos('.',edit2.Text)<=0 then  str:=Edit2.Text+'.xdj' else str:=Edit2.Text;
  if not FileExists(str) then exit;
  edit2.Text:=str;
  BadoConn:=TADOConnection.Create(self); BadoConn.LoginPrompt:=false;
  BadoConn.ConnectionString:=Format(bProvider,[edit2.Text]);
  panel1.Visible:=True;
  Panel1.Caption:='正在恢复数据.........';
  Panel1.Align:=alClient;
  try
  BadoConn.Connected:=True;
  Restore1(BadoConn);
  Restore2(BadoConn);
  Restore3(BadoConn);
  Restore4(BadoConn);
  Restore5(BadoConn);
  Restore6(BadoConn);
  Restore7(BadoConn);  
  BadoConn.Connected:=False;
    Application.MessageBox('恢复数据成功!','提示');
  except
    Application.MessageBox('恢复备份失败!','提示');
    BadoConn.Free;
  end;
  Panel1.Visible:=False;
end;

procedure TFrm_SaveOrRestore.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;Frm_SaveOrRestore:=nil;
end;

procedure TFrm_SaveOrRestore.FormCreate(Sender: TObject);
begin
  appPath:=ExtractFilePath(ParamStr(0));//+'plugin\';
  adRconn:=TADOConnection.Create(self); adRconn.LoginPrompt:=False;
  adRconn.ConnectionString:=Connstr;
  adRconn.Connected:=True;
end;

procedure TFrm_SaveOrRestore.backup1(adcon:TADOConnection);
var
  bAdoQ:TADOQuery;
begin
  bAdoQ:=TADOQuery.Create(Self);
  bAdoQ.Connection:=adcon;
  bAdoQ.SQL.Clear;
  bAdoQ.SQL.Text:='delete from T_employee';
  bAdoQ.ExecSQL;
  badoq.SQL.Text:='select * from T_employee';
  bAdoQ.Open;
  try   Screen.Cursor:=crHourGlass;
    adcon.BeginTrans;
    with dm.AdoQback do
    begin
    dm.AdoQback.Connection:=DM.AdoConn;
    SQL.Text:='select * from T_employee' ;
    Prepared:=True;
    Open;
    {bAdoQ.Append;
    badoq.FieldByName('No').AsString:='0001';
    badoq.FieldByName('UserName').AsString:='Admin';
    badoq.FieldByName('Password').AsString:='123';
    badoq.FieldByName('Purview').AsInteger:=1;
    badoq.FieldByName('deptNo').AsString:='';
    badoq.FieldByName('Prefession').AsString:='';
    badoq.FieldByName('ReMark').AsString:='';
    badoq.FieldByName('PlanNo').AsString:='';
    badoq.FieldByName('Purview2').AsString:='高级用户';
    badoq.UpdateRecord;
    badoq.Refresh; }
    while not Eof  do begin
      application.ProcessMessages;
      bAdoQ.Append;
      badoq.FieldByName('No').AsString:=FieldByName('No').AsString;
      badoq.FieldByName('UserName').AsString:=FieldByName('UserName').AsString;
      badoq.FieldByName('Password').AsString:=FieldByName('Password').AsString;
      badoq.FieldByName('Purview').AsInteger:=FieldByName('Purview').AsInteger;
      badoq.FieldByName('deptNo').AsString:=FieldByName('deptNo').AsString;
      badoq.FieldByName('Prefession').AsString:=FieldByName('Prefession').AsString;
      badoq.FieldByName('ReMark').AsString:=FieldByName('ReMark').AsString;
      badoq.FieldByName('PlanNo').AsString:=FieldByName('PlanNo').AsString;
      badoq.FieldByName('Purview2').AsString:=FieldByName('Purview2').AsString;
      badoq.UpdateRecord;
      next;
    end;
    badoq.Refresh;
    end;
    adcon.CommitTrans;
  finally    Screen.Cursor:=crDefault;
    bAdoQ.Free;
    if adcon.InTransaction then
      adcon.RollbackTrans;
  end;
end;

procedure TFrm_SaveOrRestore.backup2(adcon: TADOConnection);
var
  bAdoQ:TADOQuery;
begin
  bAdoQ:=TADOQuery.Create(Self);
  bAdoQ.Connection:=adcon;
  bAdoQ.SQL.Clear;
  bAdoQ.SQL.Text:='delete from T_DEPT';
  bAdoQ.ExecSQL;
  badoq.SQL.Text:='select * from T_DEPT';
  bAdoQ.Open;
  try    Screen.Cursor:=crHourGlass;
    adcon.BeginTrans;
    with dm.AdoQback do
    begin
    SQL.Text:='select * from T_DEPT' ;
    Prepared:=True;
    Open;
    while not Eof  do begin   application.ProcessMessages;
      bAdoQ.Append;
      badoq.FieldByName('deptno').AsString:=FieldByName('deptno').AsString;
      badoq.FieldByName('deptname').AsString:=FieldByName('deptname').AsString;
      badoq.UpdateRecord;
      next;
    end;
    badoq.Refresh;
    end;
    adcon.CommitTrans;
  finally    Screen.Cursor:=crDefault;
    bAdoQ.Free;
    if adcon.InTransaction then
      adcon.RollbackTrans;
  end;

end;

procedure TFrm_SaveOrRestore.backup3(adcon: TADOConnection);
var
  bAdoQ:TADOQuery;
begin
  bAdoQ:=TADOQuery.Create(Self);
  bAdoQ.Connection:=adcon;
  bAdoQ.SQL.Clear;
  bAdoQ.SQL.Text:='delete from T_EUPET';
  bAdoQ.ExecSQL;
  badoq.SQL.Text:='select * from T_EUPET';
  bAdoQ.Open;
  try
    Screen.Cursor:=crHourGlass;
    application.ProcessMessages;
    adcon.BeginTrans;
    with dm.AdoQback do
    begin
    SQL.Text:='select * from T_EUPET' ;
    Prepared:=True;
    Open;
    while not Eof  do begin
      bAdoQ.Append;
      badoq.FieldByName('eupetnno').AsString:=FieldByName('eupetnno').AsString;
      badoq.FieldByName('eupetNo').AsString:=FieldByName('eupetNo').AsString;
      badoq.FieldByName('eupetName').AsString:=FieldByName('eupetName').AsString;
      badoq.UpdateRecord;
      next;
    end;
    badoq.Refresh;
    end;
    adcon.CommitTrans;
  finally
    Screen.Cursor:=crDefault;
    bAdoQ.Free;
    if adcon.InTransaction then
      adcon.RollbackTrans;
  end;
end;


procedure TFrm_SaveOrRestore.backup4(adcon: TADOConnection);
var
  bAdoQ:TADOQuery;
begin
  bAdoQ:=TADOQuery.Create(Self);
  bAdoQ.Connection:=adcon;
  bAdoQ.SQL.Clear;
  bAdoQ.SQL.Text:='delete from T_Part';
  bAdoQ.ExecSQL;
  badoq.SQL.Text:='select * from T_Part';
  bAdoQ.Open;
  try
    Screen.Cursor:=crHourGlass;
    adcon.BeginTrans;
    with dm.AdoQback do
    begin
    SQL.Text:='select * from T_Part' ;
    Prepared:=True;
    Open;
    while not Eof  do begin
      application.ProcessMessages;
      bAdoQ.Append;
      badoq.FieldByName('NPartNo').AsString:=FieldByName('NPartNo').AsString;
      badoq.FieldByName('PartName').AsString:=FieldByName('PartName').AsString;
      badoq.FieldByName('EupetNno').AsString:=FieldByName('EupetNno').AsString;
      badoq.FieldByName('Ib').AsString:=FieldByName('Ib').AsString;
      badoq.FieldByName('PartNo').AsString:=FieldByName('PartNo').AsString;
      badoq.FieldByName('Ibmemo').AsString:=FieldByName('Ibmemo').AsString;
      badoq.UpdateRecord;
      next;
    end;
    badoq.Refresh;
    end;
    adcon.CommitTrans;
  finally   Screen.Cursor:=crDefault;
    bAdoQ.Free;
    if adcon.InTransaction then
      adcon.RollbackTrans;
  end;
end;

procedure TFrm_SaveOrRestore.backup5(adcon: TADOConnection);
var
  bAdoQ:TADOQuery;
begin
  bAdoQ:=TADOQuery.Create(Self);
  bAdoQ.Connection:=adcon;
  bAdoQ.SQL.Clear;
  bAdoQ.SQL.Text:='delete from T_checkpt';
  bAdoQ.ExecSQL;
  badoq.SQL.Text:='select * from T_checkpt';
  bAdoQ.Open;
  try  Screen.Cursor:=crHourGlass;
    adcon.BeginTrans;
    with dm.AdoQback do
    begin
    SQL.Text:='select * from T_checkpt' ;
    Prepared:=True;
    Open;
    while not Eof  do begin
    application.ProcessMessages;
      bAdoQ.Append;
      badoq.FieldByName('eupetNno').AsString:=FieldByName('eupetNno').AsString;
      badoq.FieldByName('npartNo').AsString:=FieldByName('npartNo').AsString;
      badoq.FieldByName('msrNNo').AsString:=FieldByName('msrNNo').AsString;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -