Entwickler-Ecke
Datenbanken - FireDAC LoginDialog mit Abbrechen beenden
jackle32 - Fr 14.10.16 20:27
Titel: FireDAC LoginDialog mit Abbrechen beenden
Hallo zusammen,
folgende Situation:
Ich benutze im meinem Projekt die FireDAC Komponenten um auf eine Access-Datenbank zuzugreifen.
Da die Datenbank nicht dauerhaft verbunden sein soll, gebe ich dem Nutzer die Möglichkeit zur Laufzeit die Anmeldung vorzunehmen.
Genau zu diesem Zweck gibt es ja die TFDGUIxLoginDialog Komponente.
In der Hilfe von RAD Studio gibt es folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| try FDConnection1.Connected := True; except on E: EAbort do ; on E: EFDDBEngineException do case E.Kind of ekUserPwdInvalid: ; ekUserPwdExpired: ; ekServerGone: ; else end; end; |
Funktioniert auch soweit gut (zusätzlich mit den extra aufgeführten Hinweisen).
Mein Problem ist jetzt nur, dass beim drücken des Abbrechen Buttons im Login-Dialog die Exception-Routine gar nicht aufgerufen wird (bei anderen Fehlern, wie falschem Passwort schon), sondern eine FireDAC Exception Meldung kommt.
Die ist erstens sehr kryptisch und zweites brauche ich keine, da ein Cancel ja ein ganz normaler Vorgang ist.
Hat jemand von euch schon mal mit dieser Komponente gearbeitet bzw. den Fehler auch schon mal umschiffen müssen?
Google ist dabei leider auch nicht wirklich hilfreich.
Gruß,
Jack
Delete - Fr 14.10.16 20:47
- Nachträglich durch die Entwickler-Ecke gelöscht -
jackle32 - Fr 14.10.16 22:09
Hallo,
nein ich habe da nix stehen. Habe mal mit ShowMessage() versucht eine Meldung zu generieren, es passiert aber nix.
Mit einem Test per Haltepunkt setzen, habe ich gesehen, dass ich gar nicht in den Exception Bereich bzw. in keinen den ich bis jetzt abfange rein komme.
Delete - Sa 15.10.16 00:03
- Nachträglich durch die Entwickler-Ecke gelöscht -
jackle32 - Mo 02.01.17 14:40
Hallo zusammen,
habe mich nach längerer Zeit nochmal diesem Thema gewidmet und des Rätsels Lösung gefunden.
Hier die Erklärung falls nochmal jemand darüber stolpern sollte.
Wird der Aufgerufenen Dialog mit Abbrechen beendet wird keine Exception der Klasse "EFDDBEngineException" und auch nicht der Klasse "EAbort" erzeugt.
Erzeugt wird eine Exception der Klasse "EFDException"
Somit kann die Fehlermeldung abgefangen werden indem in den except Block aus meinem ersten Post noch der Abschnitt
Delphi-Quelltext
1: 2: 3: 4:
| on E: EFDException do begin end; |
eingefügt wird.
Hoffe es spart dem ein oder anderen etwas Zeit
Gruß,
Jack
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!