昨天一位高手给了我一段access数据库备份和还原的代码,如下:
************** 备份 ***********
procedure TForm3.BitBtn1Click(Sender: TObject); //这个事件就是为备份选择路径,var 这个我清楚。
mPath:String;
begin
if Selectdirectory('请选择备份路径','c:',mPath) then
if mPath[Length(mPath)]<> '\' then
mPath :=mPath + '\';
Edit1.Text:= mPath;
end;
procedure TForm3.Button2Click(Sender: TObject); //关闭主窗体
begin
close;
end;procedure TForm3.FormCreate(Sender: TObject);//这个到底是干什么用的啊,能不能
解释一下啊没有它可以对数据库进
行备份操作吗?
begin
edit3.Text:='MYHELP'+FormatdateTime('yyyy-mm-dd', now) + '.mdb';
end;procedure TForm3.Button1Click(Sender: TObject);//备份操作
var
f:boolean;
begin
f:=CopyFile((pchar(ExtractFilepath(Application.ExeName)+'sal.mdb')),pchar(edit1.Text+edit3.Text),false);
if f=true then
showmessage('备份成功')
else
showMessage('备份失败');
end;
*********************还原**********
procedure TForm3.Button3Click(Sender: TObject); //还原操作
var
f:boolean;
s:string;
begin
Form1.ADOQuery1.Close;
Form1.ADOQuery2.Close;
Form1.ADOConnection1.Connected := false;
if Trim(Edit2.Text)='' THEN
begin
showmessage('请选择要恢复的数据库') ;
Exit;
end;
if ExtractFileExt(Trim(Edit2.Text))<>'mdb' then
begin
showmessage('请确认你选择要恢复的数据库文件是否是数据库文件!');
end;
if Application.MessageBox('真的要恢复数据库吗?','确认恢复',MB_OKCANCEL)=IDOK then
begin
f:=CopyFile((pchar(edit2.Text)),pchar(ExtractFilepath(Application.ExeName)+'sal.mdb'),false);
if f=true then
begin
showmessage('恢复成功');
Form1.ADOConnection1.Connected := true;
Form1.ADOQuery1.Open;
Form1.com_query;
end
else
begin
showmessage('恢复失败');
exit;
end;
end;
end;
procedure TForm3.BitBtn4Click(Sender: TObject); //找到你所要备份或还原的文件名
begin
OpenDialog1.InitialDir:=ExtractFilepath(Application.ExeName);
if OpenDialog1.Execute then
Edit2.Text:=OpenDialog1.FileName;
end;end.
但是我怎么调试了就是不成功?请高手帮我调试一下?谢谢?
并详细指出哪个事件是干什么用的?总共需要哪些控件?都请列出来,谢谢?小第高分相送?
************** 备份 ***********
procedure TForm3.BitBtn1Click(Sender: TObject); //这个事件就是为备份选择路径,var 这个我清楚。
mPath:String;
begin
if Selectdirectory('请选择备份路径','c:',mPath) then
if mPath[Length(mPath)]<> '\' then
mPath :=mPath + '\';
Edit1.Text:= mPath;
end;
procedure TForm3.Button2Click(Sender: TObject); //关闭主窗体
begin
close;
end;procedure TForm3.FormCreate(Sender: TObject);//这个到底是干什么用的啊,能不能
解释一下啊没有它可以对数据库进
行备份操作吗?
begin
edit3.Text:='MYHELP'+FormatdateTime('yyyy-mm-dd', now) + '.mdb';
end;procedure TForm3.Button1Click(Sender: TObject);//备份操作
var
f:boolean;
begin
f:=CopyFile((pchar(ExtractFilepath(Application.ExeName)+'sal.mdb')),pchar(edit1.Text+edit3.Text),false);
if f=true then
showmessage('备份成功')
else
showMessage('备份失败');
end;
*********************还原**********
procedure TForm3.Button3Click(Sender: TObject); //还原操作
var
f:boolean;
s:string;
begin
Form1.ADOQuery1.Close;
Form1.ADOQuery2.Close;
Form1.ADOConnection1.Connected := false;
if Trim(Edit2.Text)='' THEN
begin
showmessage('请选择要恢复的数据库') ;
Exit;
end;
if ExtractFileExt(Trim(Edit2.Text))<>'mdb' then
begin
showmessage('请确认你选择要恢复的数据库文件是否是数据库文件!');
end;
if Application.MessageBox('真的要恢复数据库吗?','确认恢复',MB_OKCANCEL)=IDOK then
begin
f:=CopyFile((pchar(edit2.Text)),pchar(ExtractFilepath(Application.ExeName)+'sal.mdb'),false);
if f=true then
begin
showmessage('恢复成功');
Form1.ADOConnection1.Connected := true;
Form1.ADOQuery1.Open;
Form1.com_query;
end
else
begin
showmessage('恢复失败');
exit;
end;
end;
end;
procedure TForm3.BitBtn4Click(Sender: TObject); //找到你所要备份或还原的文件名
begin
OpenDialog1.InitialDir:=ExtractFilepath(Application.ExeName);
if OpenDialog1.Execute then
Edit2.Text:=OpenDialog1.FileName;
end;end.
但是我怎么调试了就是不成功?请高手帮我调试一下?谢谢?
并详细指出哪个事件是干什么用的?总共需要哪些控件?都请列出来,谢谢?小第高分相送?
好象没用什么特别的控件
但是好象这里:Selectdirectory('请选择备份路径','c:',mPath)
要加上 uses FileCtrl;
^_^
这里:Selectdirectory('请选择备份路径','c:',mPath)
要加上:uses:QDialogs;
给备份文件取的名字啊,注意:还要用一个:OpenDialog 控件哦