SaveDialog对数据库进行备份时,连续备份两次第二次就出错
SaveDialog1.Execute;
filename:=SaveDialog1.FileName;
if filename<>'' then
begin
ADOCommand1.CommandText:='BACKUP DATABASE 病理系统 TO DISK = ''' +filename + '''';
try
ADOCommand1.Execute; except
ShowMessage('数据库备份失败');
Exit;
end;
ADOCommand1.Free;
ShowMessage('操作成功,系统数据库已备份。'+chr(13)+chr(13)+'备份文件:'+SaveDialog1.FileName);
end
else
begin
ShowMessage('请输入文件名!');
end;
SaveDialog1.Execute;
filename:=SaveDialog1.FileName;
if filename<>'' then
begin
ADOCommand1.CommandText:='BACKUP DATABASE 病理系统 TO DISK = ''' +filename + '''';
try
ADOCommand1.Execute; except
ShowMessage('数据库备份失败');
Exit;
end;
ADOCommand1.Free;
ShowMessage('操作成功,系统数据库已备份。'+chr(13)+chr(13)+'备份文件:'+SaveDialog1.FileName);
end
else
begin
ShowMessage('请输入文件名!');
end;
第二次运行的时候,没有ADOCommand1了,当然就出错了
把ADOCommand1.Free;去掉就可以了。
begin
filename:=SaveDialog1.FileName;
if filename<>'' then
begin
ADOCommand1.CommandText:='BACKUP DATABASE 病理系统 TO DISK = ''' +filename + '''';
try
ADOCommand1.Execute; except
ShowMessage('数据库备份失败');
Exit;
end;
ShowMessage('操作成功,系统数据库已备份。'+chr(13)+chr(13)+'备份文件:'+SaveDialog1.FileName);
end
else
begin
ShowMessage('请输入文件名!');
end;
end;