📄 pfm_databack.pas
字号:
unit pfm_databack;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons,pvar_lib, Db, DBTables, CheckLst;
type
Tfm_databack = class(TForm)
GroupBox1: TGroupBox;
Memo1: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
Table1: TTable;
Table2: TTable;
BatMove1: TBatchMove;
CkLBox1: TCheckListBox;
BBtnSelall: TBitBtn;
BBtnNoall: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BBtnSelallClick(Sender: TObject);
procedure BBtnNoallClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fm_databack: Tfm_databack;
implementation
{$R *.DFM}
var
stable,stabledes:TStringlist;
procedure Tfm_databack.FormCreate(Sender: TObject);
var
i:integer;
begin
label1.Caption:='上次备份数据时间'+InitRead2('备份数据','时间','无');
stable:=TStringlist.create;
stabledes:=Tstringlist.create;
stable.Add('t_bmxx');
stabledes.Add('部门信息表');
stable.Add('t_ckxx');
stabledes.Add('仓库信息表');
// stable.Add('t_datadict');
// stabledes.Add('下拉数据表');
stable.Add('t_fendianxx');
stabledes.Add('分店信息表');
stable.Add('t_gysxx');
stabledes.Add('供应商信息表');
stable.Add('t_gzxx');
stabledes.Add('柜组信息表');
stable.Add('t_khxx');
stabledes.Add('客户信息表');
stable.Add('t_spbmlb');
stabledes.Add('商品编码对照表');
stable.Add('t_spxx');
stabledes.Add('商品信息表');
stable.Add('t_stocksp');
stabledes.Add('库存信息表');
stable.Add('t_user');
stabledes.Add('系统用户信息表');
stable.Add('t_userright');
stabledes.Add('用户操作权限表');
stable.Add('t_ygxx');
stabledes.Add('员工信息表');
stable.Add('TAB_chinesename');
stabledes.Add('部门信息表');
stable.Add('tab_fdtcd');
stabledes.Add('分店申请退仓单');
stable.Add('tab_fdthd');
stabledes.Add('分店申请提货单');
stable.Add('tab_xsrz');
stabledes.Add('销售日志表');
stable.Add('tb_jhd');
stabledes.Add('进货入库单');
stable.Add('tb_jhdmx');
stabledes.Add('进货入库明细单');
stable.Add('tb_mdtcd');
stabledes.Add('门店退仓单');
stable.Add('tb_mdtcdmx');
stabledes.Add('门店退仓明细单');
stable.Add('tb_pfd');
stabledes.Add('批发单');
stable.Add('tb_pfdmx');
stabledes.Add('批发明细单');
stable.Add('tb_sptuihuod');
stabledes.Add('商品退货单');
stable.Add('tb_sptuihuodmx');
stabledes.Add('商品退货明细单');
stable.Add('tb_syd');
stabledes.Add('仓库损溢单');
stable.Add('tb_sydmx');
stabledes.Add('仓库损溢明细单');
stable.Add('tb_thd');
stabledes.Add('分店提货单');
stable.Add('tb_thdmx');
stabledes.Add('分店提货明细单');
stable.Add('tb_tjd');
stabledes.Add('商品调价单');
stable.Add('tb_tjdmx');
stabledes.Add('商品调价明细单');
stable.Add('tb_tuihuod');
stabledes.Add('客户退货单');
stable.Add('tb_tuihuodmx');
stabledes.Add('客户退货明细单');
stable.Add('tb_yfkcl');
stabledes.Add('应付款处理单');
stable.Add('tb_yfkmx');
stabledes.Add('应付款明细单');
stable.Add('tb_yskcl');
stabledes.Add('应收款处理单');
stable.Add('tb_yskmx');
stabledes.Add('应收款明细单');
stable.Add('tb_zengpind');
stabledes.Add('赠品单');
stable.Add('tb_zengpindmx');
stabledes.Add('赠品明细单');
stable.add('t_optrecord');
stabledes.Add('操作日志表');
for i:=0 to stable.count-1 do
begin
cklbox1.Items.Add(stabledes.strings[i]);
end;
end;
procedure Tfm_databack.BitBtn1Click(Sender: TObject);
var
i,cnt1:integer;
begin
if application.MessageBox(pchar('备份数据将花费较长的时间,确定要备份当前所有数据'),
pchar('注意'),MB_OKCANCEL)<>IDOK then
begin
exit;
end;
cnt1:=0;
table1.Databasename:='posdb';
batmove1.mode:=batcopy;
batmove1.Source:=table1;
batmove1.Destination:=table2;
for i:=0 to stable.count-1 do
begin
if cklbox1.Checked[i]=true then
begin
memo1.lines.add('正在备份【'+stabledes.strings[i]+'】......');
table1.tablename:=stable.Strings[i];
table2.tablename:='backdata\'+stable.Strings[i];
batmove1.Execute;
cnt1:=cnt1+1;
end;
end;
if cnt1=0 then exit;
memo1.lines.add('数据库备份成功!共有'+inttostr(cnt1)+'个数据库表备份');
Initsave2('备份数据','时间',datetimetostr(date()));
label1.caption:='上次备份数据时间'+datetimetostr(date());
AddOptRecord('数据库备份,共备份'+inttostr(cnt1)+'个数据库表');
end;
procedure Tfm_databack.BitBtn2Click(Sender: TObject);
var
i,cnt1:integer;
begin
if application.MessageBox(pchar('恢复以前备份数据会将本次数据清除,确定要恢复上次备份数据?'),
pchar('注意'),MB_OKCANCEL)<>IDOK then
begin
exit;
end;
cnt1:=0;
table2.Databasename:='posdb';
batmove1.mode:=batcopy;
batmove1.Source:=table1;
batmove1.Destination:=table2;
for i:=0 to stable.count-1 do
begin
if cklbox1.Checked[i]=true then
begin
memo1.lines.add('正在恢复【'+stabledes.strings[i]+'】......');
table2.tablename:=stable.Strings[i];
table1.tablename:='backdata\'+stable.Strings[i];
batmove1.Execute;
cnt1:=cnt1+1;
end;
end;
if cnt1=0 then exit;
memo1.lines.add('数据库恢复成功!共有'+inttostr(cnt1)+'个数据库表');
//Initsave2('备份数据','时间',datetimetostr(date()));
//label1.caption:='上次备份数据时间'+datetimetostr(date());
AddOptRecord('数据库恢复,共有'+inttostr(cnt1)+'个数据库表');
end;
procedure Tfm_databack.BBtnSelallClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to cklbox1.items.count-1 do
begin
cklbox1.Checked[i]:=true;
end;
end;
procedure Tfm_databack.BBtnNoallClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to cklbox1.items.count-1 do
begin
cklbox1.Checked[i]:=false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -