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

📄 unitdatabackup.pas

📁 一套宾馆管理系统
💻 PAS
字号:
unit UnitDataBackUp;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ToolWin, ExtCtrls, Grids, DBGrids, ADODB, DB;

type
  TfrmDataBackup = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    tbnBack: TToolButton;
    tbnBackList: TToolButton;
    tbnExit: TToolButton;
    Panel1: TPanel;
    Splitter1: TSplitter;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    cboDevice: TComboBox;
    edtTime: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    DBGrid: TDBGrid;
    DataSource: TDataSource;
    ADOQuery: TADOQuery;
    ADOStored: TADOStoredProc;
    procedure tbnExitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tbnBackClick(Sender: TObject);
    procedure cboDeviceChange(Sender: TObject);
  private
    strCon:string;
    procedure showlist();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmDataBackup: TfrmDataBackup;

implementation

uses UnitMain;

{$R *.dfm}
procedure TfrmDataBackup.showlist();
var
 strSmt:string;
begin
 //backup file list
  strSmt:='select back_name,back_filepath,backup_name,createtime';
  strSmt:=strSmt+' from master.dbo.backupfilelist a left outer join master.dbo.backupdevice b ';
  strSmt:=strSmt+' on a.device_no=b.back_id where back_name='''+cbodevice.text+'''';
  strSmt:=strSmt+' order by createtime desc ' ;
  adoquery.Close;
  adoquery.ConnectionString:=strCon;
  adoquery.sql.Clear;
  adoquery.SQL.Add(strSmt);
  adoquery.Open ;
end;
procedure TfrmDataBackup.tbnExitClick(Sender: TObject);
begin
frmDataBackup.Close;
end;

procedure TfrmDataBackup.FormCreate(Sender: TObject);
begin
 frmMain.ReadINI;
 strCon:=frmMain.strCon;
end;

procedure TfrmDataBackup.FormShow(Sender: TObject);
var
 strSmt:string;
 xx:TColumn;
begin
  //-----backup device
  adoquery.ConnectionString:=strCon;
  adoquery.Close;
  adoquery.SQL.clear;
  adoquery.SQL.Add('select * from master.dbo.backupdevice order by back_id');
  try
  adoquery.Open ;
  cbodevice.Items.Clear ;
  while not adoquery.Eof do
   begin
    cboDevice.Items.Add(adoquery.Fields[1].asstring); 
    adoquery.Next;
   end;
  finally
   cbodevice.ItemIndex:=0;
   edttime.Text:=datetimetostr(now());
   adoquery.Close;
   adoquery.SQL.Clear;
  end;
  //backup file list
  strSmt:='select back_name,back_filepath,backup_name,createtime';
  strSmt:=strSmt+' from master.dbo.backupfilelist a left outer join master.dbo.backupdevice b ';
  strSmt:=strSmt+' on a.device_no=b.back_id where back_name='''+cbodevice.text+'''';
  strSmt:=strSmt+' order by createtime desc ' ;
  adoquery.Close;
  adoquery.ConnectionString:=strCon;
  adoquery.sql.Clear;
  adoquery.SQL.Add(strSmt);
  try
   adoquery.Open ;
   //---------
   xx:=dbgrid.Columns.Add;
   xx.Title.Caption:='备份设备名';
   xx.FieldName:=adoquery.Fields[0].DisplayName;
   xx.Width :=60;
   //---------
   xx:=dbgrid.Columns.Add ;
   xx.Title.Caption:='备份路径';
   xx.FieldName:=adoquery.Fields[1].DisplayName;
   xx.Width :=150;
   //---------
   xx:=dbgrid.Columns.Add ;
   xx.Title.Caption :='备份文件名';
   xx.FieldName:=adoquery.Fields[2].DisplayName ;
   xx.Width :=100;
   //---------
   xx:=dbgrid.Columns.Add;
   xx.Title.Caption:='备份日期';
   xx.FieldName:=adoquery.Fields[3].DisplayName;
   xx.Width :=100
  finally
   //adoquery.Filter:='backup_name=cbodevice.text' ;
   datasource.DataSet:=adoquery;
   dbgrid.DataSource:=datasource;
  end;
end;

procedure TfrmDataBackup.tbnBackClick(Sender: TObject);
var
 xx:TParameter;
 strResult:string;
begin
 adostored.ConnectionString:=strCon;
 adostored.ProcedureName:='backupdatabase';
 adostored.Parameters.Clear ;
 xx:=adostored.Parameters.AddParameter;
 //-------Parameter
 xx.Name :='device';
 xx.DataType:=ftstring;
 xx.Direction :=pdinput;
 xx.Value :=cbodevice.Text;
 xx.Size :=30;
 //-------Parameter
 xx:=adostored.Parameters.AddParameter;
 xx.Name :='xx';
 xx.DataType:=ftstring;
 xx.Direction :=pdoutput;
 xx.Size :=30;
 try
  adostored.ExecProc ;
  strResult:=adostored.Parameters.ParamValues['xx'];
 finally
  adostored.Close;
 end;
 if strResult='success' then
      begin
       showmessage('备份成功');
       adoquery.Requery(); 
       exit;
      end
 else
   begin
    showmessage('备份失败');
    exit;
   end;
end;

procedure TfrmDataBackup.cboDeviceChange(Sender: TObject);
begin
 frmdatabackup.showlist ;
end;

end.

⌨️ 快捷键说明

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