Einzelnen Beitrag anzeigen

Frankdarwin

Registriert seit: 27. Jan 2011
9 Beiträge
 
Delphi 12 Athens
 
#1

Probleme mit EMySQLNativeException

  Alt 22. Apr 2025, 21:49
Datenbank: MySQL • Version: 8.0.13 • Zugriff über: Firedac
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!
Miniaturansicht angehängter Grafiken
debugger-exception.jpg  
Frank
"Geht nicht, gibt's nicht!"
Schon gar nicht, bevor man es nicht porobiert hat.

Geändert von TBx (23. Apr 2025 um 12:17 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat