var sourcefilename,destfilename:string; begin if Frmmain.BR ='0' then begin bsskinsavedialog1.FileName:=formatdatetime('yyyymmdd',Now())+'Health.mdb'; if bsskinsavedialog1.Execute then begin destfilename:= bsskinsavedialog1.FileName; with dmin do begin if adodatabase.Connected =true then begin adodatabase.Connected :=false; adodatabase.close ; end; end; sourcefilename:=extractfilepath(application.exename)+'Health.mdb'; with Tmemorystream.Create do try self.Refresh ; self.Refresh ; self.Refresh ; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; self.Refresh ; self.Refresh ; self.Refresh ; loadfromfile(sourcefilename); flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; self.Refresh ; self.Refresh ; self.Refresh ; FrmBackup.Cursor:=crHourGlass; savetofile(destfilename); self.Refresh ; self.Refresh ; FrmBackup.Cursor:=crHourGlass; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; flatprogressbar1.StepIt ; FrmBackup.Cursor:=crDefault ; flatprogressbar1.Position:=0; MsgDlg('数据备份成功!',mtWarning,[mbOK],'全民健康普查管理系统',stRound_ArrowMiddle); finally free; end; with dmin do begin if adodatabase.Connected =false then begin adodatabase.Connected :=true; adodatabase.Open ; end; end; end; end;
sourcefilename,destfilename:string;
begin
if Frmmain.BR ='0' then
begin
bsskinsavedialog1.FileName:=formatdatetime('yyyymmdd',Now())+'Health.mdb';
if bsskinsavedialog1.Execute then
begin
destfilename:= bsskinsavedialog1.FileName;
with dmin do
begin
if adodatabase.Connected =true then
begin
adodatabase.Connected :=false;
adodatabase.close ;
end;
end;
sourcefilename:=extractfilepath(application.exename)+'Health.mdb';
with Tmemorystream.Create do
try
self.Refresh ;
self.Refresh ;
self.Refresh ;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
self.Refresh ;
self.Refresh ;
self.Refresh ;
loadfromfile(sourcefilename);
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
self.Refresh ;
self.Refresh ;
self.Refresh ;
FrmBackup.Cursor:=crHourGlass;
savetofile(destfilename);
self.Refresh ;
self.Refresh ;
FrmBackup.Cursor:=crHourGlass;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
flatprogressbar1.StepIt ;
FrmBackup.Cursor:=crDefault ;
flatprogressbar1.Position:=0;
MsgDlg('数据备份成功!',mtWarning,[mbOK],'全民健康普查管理系统',stRound_ArrowMiddle);
finally
free;
end;
with dmin do
begin
if adodatabase.Connected =false then
begin
adodatabase.Connected :=true;
adodatabase.Open ;
end;
end;
end;
end;
我也有同样的问题
主要思路是要用delphi程序复制mdb数据库
本人很菜,写了一下,就是复制的文件格式不对!
最好能写出代码来,上面叶男的代码看不懂
同样的对象不知表达什么.
使用copyFile()拷贝ACCESS文件即可;
_application.dbenginee对象
compatdatabas就是他的一个方法
至于如何使用,和一般的com对象使用是一样的!
大概是这样的:
__DBEngine36.CompactDatabase(database.DatabaseName, tempfile, '', 0, ';pwd=你的数据库密码');
MSN:[email protected]
谢谢了哟
但是,我好像没有看到恢复回去的片断。难道,你也是用文件拷贝方式将
备份好的文件改为现在的名字来完成?
[email protected]