private
{ Private declarations }
public
{ Public declarations }
end;
var
frmbackup: Tfrmbackup;
implementation
uses datamodule;
{$R *.dfm}
procedure Tfrmbackup.BitBtn2Click(Sender: TObject);
begin
frmbackup.Close;
end;
procedure Tfrmbackup.FormShow(Sender: TObject);
begin
edtpath.Text:=extractfiledir(application.ExeName)+'\backup';
end;
procedure Tfrmbackup.BitBtnOkClick(Sender: TObject);
var
systemtime:Tsystemtime;
FileName,s,t:string;
begin
if length(edtpath.Text)=0 then
begin
application.MessageBox('备份路径不能为空!','警告',MB_OK);
abort;
end;
if session.IsAlias('dbase') then
begin
application.MessageBox('你已经备份过数据了,请退出程序重新进入再备份!','警告',MB_OK);
abort;
end;
With session Do Begin
configmode:=cmsession;
try
AddStandardAlias('dbase',edtpath.Text,'Foxpro');
finally
configmode:=cmall;
End;
End;
if dtpstartdate.Date=dtpenddate.Date then begin
getlocaltime(systemtime);
s:=FormatDatetime('yyyymmdd',systemtimetodatetime(systemtime));
FileName:=s+'.dbf';
end else begin
s:=FormatDatetime('yyyymmdd',dtpstartdate.DateTime);
t:=formatDatetime('yyyymmdd',dtpenddate.datetime);
Filename:=s+'~'+t+'.dbf';
end;
if fileexists(edtpath.Text+'\sample.dbf') then
deletefile(edtpath.text+'\sample.dbf');
if fileexists(edtpath.text+'\'+FileName) then
deletefile(edtpath.text+'\'+FileName);
with dm.dbfTable do begin
Active := False;
DatabaseName:= 'dbase';
TableType:= ttfoxpro;
TableName:= 'sample';
if not dm.dbfTable.Exists then begin
with FieldDefs do begin
Clear;
With addFieldDef Do Begin
Name:='kh';
DataType:=ftstring;
Size:=7;
end;
with addfielddef do begin
Name:='pjh';
DataType:=ftstring;
Size:=9;
end;
with addfielddef do begin
DataType:=ftstring;
Name:='yyzh';
Size:=7;
end;
with addfielddef do begin
DataType:=ftdate;
Name:='wxrq';
end;
with addfielddef do begin
DataType:=ftstring;
Name:='wxdwdm';
Size:=3;
end;
with addfielddef do begin
DataType:=ftboolean;
Name:='ok';
end;
with addfielddef do begin
DataType:=ftboolean;
Name:='cf';
end;
with addfielddef do begin
DataType:=ftboolean;
Name:='bhg';
end;
with addfielddef do begin
DataType:=ftdate;
Name:='jhwxrq';
end;
with addfielddef do begin
DataType:=ftdate;
Name:='nsrq';
end;
with addfielddef do begin
DataType:=ftstring;
Name:='jsdj';
size:=1;
end;
with addfielddef do begin
DataType:=ftdate;
Name:='nssj';
end;
with addfielddef do begin
dataType:=ftstring;
Name:='djcx';
size:=8;
end;
with addfielddef do begin
DataType:=ftfloat;
Name:='dy1';
end;
with addfielddef do begin
dataType:=ftfloat;
Name:='dy2';
end;
end;
CreateTable;
End;
end;
With dm.tempQuery Do Begin
Close;
Sql.Clear;
Sql.Add('Select * from print');
sql.Add('where wxrq >= :tempstart');
sql.add('and wxrq <= :tempend');
parambyname('tempstart').AsDateTime:=dtpstartdate.Date;
parambyname('tempend').AsDateTime:=dtpenddate.date;
Open;
While not eof Do Begin
With dm.DbfQuery Do Begin
Close;
Sql.Clear;
Sql.Add('Insert into sample(kh,pjh,yyzh,wxrq,wxdwdm,ok,cf,bhg,jhwxrq,nsrq,jsdj,nssj,djcx,dy1,dy2)');
sql.add('values(:tempkh,:temppjh,:tempyyzh,:tempwxrq,:tempwxdwdm,:tempok,:tempcf,:tempbhg,:tempjhwxrq,');
sql.add('null,:tempjsdj,:tempnssj,:tempdjcx,:tempdy1,:tempdy2)');
Parambyname('tempkh').AsString:=dm.tempQuery.fieldbyname('kh').asstring;
Parambyname('temppjh').Asstring:=dm.tempQuery.fieldbyname('pjh').AsString;
parambyname('tempyyzh').AsString:=dm.tempQuery.fieldbyname('yyzh').AsString;
parambyname('tempwxrq').AsDate:=dm.tempQuery.fieldbyname('wxrq').AsDatetime;
parambyname('tempwxdwdm').Asstring:=dm.tempQuery.fieldbyname('wxdwdm').Asstring;
parambyname('tempok').Asboolean:=dm.tempQuery.fieldbyname('ok').Asboolean;
parambyname('tempcf').Asboolean:=dm.tempQuery.fieldbyname('cf').Asboolean;
parambyname('tempbhg').Asboolean:=dm.tempQuery.fieldbyname('bhg').Asboolean;
parambyname('tempjhwxrq').AsDate:=dm.tempQuery.fieldbyname('jhwxrq').AsDatetime;
parambyname('tempjsdj').Asstring:=dm.tempQuery.fieldbyname('jsdj').Asstring;
parambyname('tempnssj').AsDate:=dm.tempQuery.fieldbyname('nssj').AsDatetime;
parambyname('tempdjcx').Asstring:=dm.tempQuery.fieldbyname('djcx').Asstring;
parambyname('tempdy1').Asfloat:=dm.tempQuery.fieldbyname('dy1').Asfloat;
parambyname('tempdy2').Asfloat:=dm.tempQuery.fieldbyname('dy2').Asfloat;
execsql;
End;
next;
End;
End;