Hallo,
nach mehrjähriger Unterbrechung beschäftige ich mich wieder mit Delphi.
Ich habe mit Freuden festgestellt, dass sich seit meiner letzten Begegnung mit Delphi vieles verbessert hat.
Aktuell verwende ich Delphi 12.
Nach wenigen Tagen war ich wieder im Thema und komme mit der neuen Version gut zurecht, stolpere aber über ein Problem,
mit dem ich noch nicht konfrontiert wurde.
Ich versuche erstmals mit Delphi und Firedac eine
MySQL DB zu bearbeiten.
Prinzipiell funktioniert das auch. Aber:
In einer
MySQL Tabelle habe ich ein Feld, welches mit dem Constraint "UNIQUE" definiert wurde.
Nach füllen der Tabellenfelder führe ich die Anweisung "FDTable1.ApplyUpdates();" in einem try-Block aus um
den erwarteten Fehler abzufangen, der bei der Verletzung des Constraint "UNIQUE" auftreten muss.
Der try-Block sieht wie folgt aus:
Delphi-Quellcode:
try
FDTable1.ApplyUpdates();
FDTable1.CommitUpdates;
except
on E: EMySQLNativeException
do
begin
ShowMessage('
Fehler beim Speichern der Daten (MySQL): ' + E.
Message);
FDTable1.CancelUpdates;
end;
Wenn ich den Code ohne Debugger ausführe passiert Garnichts.
Führe ich den Code mit Debugger aus, erscheint die erwartete Fehlermeldung (siehe Anhang).
Meine, im try-Block definierte Fehlerbehandlung wird aber nie angesprungen.
Auch dann nicht, wenn ich in der Benachrichtigung (Anhang) die Option "Diesen
Exception-Typ ignorieren" markiere.
Wo liegt mein Problem?
Ich bin für jede Hilfe dankbar!