Access数据库被份的代码如下:
procedure TForm14.BitBtn1Click(Sender: TObject);
var
F:TShFileOpStruct;
//DataBackupFileName:string;
begin
F.wnd:=Handle;
F.wFunc:=Fo_COPY; //操作方式:拷贝数据
F.pFrom:=pAnsichar(ExtractFileDir(Application.ExeName)+'\Data\WEmis.mdb'+#0);
OpenDialog1.Filter:='Access文件(*.mdb)|*.mdb';
OpenDialog1.Title:='选择备份路径和文件名';
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName)+'\Backup';
if OpenDialog1.Execute then
F.pTo:=pAnsichar(OpenDialog1.FileName+'[Access备份'+//构造备份文件名
FormatDateTime('yyyy-mm-dd',Now)+']'+'.mdb');//进行文件备份
F.fFlags:=FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;//操作选项
if ShFileOperation(F)=0 then
MessageDlg(#13+#10+' Access数据文件备份成功!',mtInformation,[mbYes],0)
else
MessageDlg(#13+#10+' Access数据文件备份失败!' ,mtWarning,[mbYes],0);
end;
可以备份,但打开选择备份文件的windows窗口后,如果不想备份了,点击取消就会弹出windows错误提示:
提示内容:Access violation at address 7C84C0D1 in module 'kernel32.dll.Read of address E1300084.
procedure TForm14.BitBtn1Click(Sender: TObject);
var
F:TShFileOpStruct;
//DataBackupFileName:string;
begin
F.wnd:=Handle;
F.wFunc:=Fo_COPY; //操作方式:拷贝数据
F.pFrom:=pAnsichar(ExtractFileDir(Application.ExeName)+'\Data\WEmis.mdb'+#0);
OpenDialog1.Filter:='Access文件(*.mdb)|*.mdb';
OpenDialog1.Title:='选择备份路径和文件名';
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName)+'\Backup';
if OpenDialog1.Execute then
F.pTo:=pAnsichar(OpenDialog1.FileName+'[Access备份'+//构造备份文件名
FormatDateTime('yyyy-mm-dd',Now)+']'+'.mdb');//进行文件备份
F.fFlags:=FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;//操作选项
if ShFileOperation(F)=0 then
MessageDlg(#13+#10+' Access数据文件备份成功!',mtInformation,[mbYes],0)
else
MessageDlg(#13+#10+' Access数据文件备份失败!' ,mtWarning,[mbYes],0);
end;
可以备份,但打开选择备份文件的windows窗口后,如果不想备份了,点击取消就会弹出windows错误提示:
提示内容:Access violation at address 7C84C0D1 in module 'kernel32.dll.Read of address E1300084.
var
F:TShFileOpStruct;
//DataBackupFileName:string;
begin
F.wnd:=Handle;
F.wFunc:=Fo_COPY; //操作方式:拷贝数据
F.pFrom:=pAnsichar(ExtractFileDir(Application.ExeName)+'\Data\WEmis.mdb'+#0);
OpenDialog1.Filter:='Access文件(*.mdb)|*.mdb';
OpenDialog1.Title:='选择备份路径和文件名';
OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName)+'\Backup';
if OpenDialog1.Execute then
begin
F.pTo:=pAnsichar(OpenDialog1.FileName+'[Access备份'+//构造备份文件名
FormatDateTime('yyyy-mm-dd',Now)+']'+'.mdb');//进行文件备份
F.fFlags:=FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;//操作选项
if ShFileOperation(F)=0 then
MessageDlg(#13+#10+' Access数据文件备份成功!',mtInformation,[mbYes],0)
else
MessageDlg(#13+#10+' Access数据文件备份失败!' ,mtWarning,[mbYes],0);
end;
end;