Hallo,
derartige Ferndiagnosen sind sehr schwierig. Ich würde daher zuerst "nachfragen" um welchen Fehler es sich dabei handelt. Dazu wird über <b>raise</b> die Exception erneut ausgelöst, so dass man die originale Exception-Meldung erhält.
<pre>
begin
MessageDlg ('Sie können ihn nicht löschen.'+#13#10+'Er wird verwendet!',
mtinformation, [mbok],0);
// ADOConnection.Errors.Clear;
raise;
end;
</pre>
Noch besser ist allerdings der Weg, den ich in meinem Beispiel vom 15. September bereits verwendet habe. Da ADO durchaus mehrere Fehler gleichzeitig melden kann, sollte man im Fehlerfall die Errors-Kollektion auswerten, um <b>alle</b> Fehlermeldungen anzuzeigen (Delphi beschränkt sich in der Regel nur auf die letzte, so dass wichtige Infos vorlorengehen):
<pre>
for iError := 0 to ADOConnection1.Errors.Count - 1 do
sError := sError + ADOConnection1.Errors[iError].Description + #10#13;
ShowMessage(sError);
</pre>
derartige Ferndiagnosen sind sehr schwierig. Ich würde daher zuerst "nachfragen" um welchen Fehler es sich dabei handelt. Dazu wird über <b>raise</b> die Exception erneut ausgelöst, so dass man die originale Exception-Meldung erhält.
<pre>
begin
MessageDlg ('Sie können ihn nicht löschen.'+#13#10+'Er wird verwendet!',
mtinformation, [mbok],0);
// ADOConnection.Errors.Clear;
raise;
end;
</pre>
Noch besser ist allerdings der Weg, den ich in meinem Beispiel vom 15. September bereits verwendet habe. Da ADO durchaus mehrere Fehler gleichzeitig melden kann, sollte man im Fehlerfall die Errors-Kollektion auswerten, um <b>alle</b> Fehlermeldungen anzuzeigen (Delphi beschränkt sich in der Regel nur auf die letzte, so dass wichtige Infos vorlorengehen):
<pre>
for iError := 0 to ADOConnection1.Errors.Count - 1 do
sError := sError + ADOConnection1.Errors[iError].Description + #10#13;
ShowMessage(sError);
</pre>
Comment