689 |
|
end; |
690 |
|
end; |
691 |
|
|
692 |
+ |
var KillDone: boolean; |
693 |
|
begin |
694 |
+ |
KillDone := false; |
695 |
|
Disconnect; |
696 |
|
repeat |
697 |
|
try |
703 |
|
end; |
704 |
|
On E: EIBInterBaseError do |
705 |
|
begin |
706 |
< |
if E.IBErrorCode = isc_io_error then |
706 |
> |
FDBPassword := ''; |
707 |
> |
if (E.IBErrorCode = isc_io_error) and not KillDone then |
708 |
|
begin |
709 |
|
if MessageDlg('I/O Error reported on database file. If this is a shadow file, do you want '+ |
710 |
|
'to kill all unavailable shadow sets?. The original message is ' + E.Message, |
711 |
|
mtInformation,[mbYes,mbNo],0) = mrNo then |
712 |
|
continue; |
713 |
|
try KillShadows except end; |
714 |
< |
FDBPassword := ''; |
714 |
> |
KillDone := true; |
715 |
|
end |
716 |
|
else |
717 |
|
ReportException(E); |