📄 unitdatabackup.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 + -