Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Connection Fehler von MYSQL Server auswerten (https://www.delphipraxis.net/213329-connection-fehler-von-mysql-server-auswerten.html)

ggscholz 10. Jul 2023 13:00

Datenbank: MYSQL • Version: 10 • Zugriff über: DEVART mysql

Connection Fehler von MYSQL Server auswerten
 
Hallo in die Runde,

ich versuche jetzt schon etwas länger, eventuell falsche Angaben im Connection String mit den Rückgabewerten des MYSQL Servers auszuwerten.

Für die Verbindung mit TUniConnection von DEVART zur MYSQL Datenbank wird u.a. (das Übliche) Username, Passwort, IP-Adresse, Port etc. bei einer ersten Installation des Programms abgefragt. Das sind sechs Felder, in denen irgendwelche fehlerhafte Daten vom Benutzer eingetragen werden könnten. Das würde ich gerne so auswerten, das nicht nur das übliche "Access Denied for User ‘root’@’localhost’" aufploppt, sondern z.B. IP-Adresse oder Port etc. falsch . MYSQL sendet entsprechende Zahlencodes die ich in
Code:
E: EDAError
auswerten könnte.

Dazu muss ich aber
Code:
fMainForm.coMariaDb.Connected = true
oder
Code:
fMainForm.coMariaDb.Connect
oder auch
Code:
open
aufrufen, mit der Folge, das es bei fehlerhaften Angaben ein ConnectionTimeOut gibt und danach erst mit der Auswerten des Fehlercodes weitergeht (leider nur wenn ich das fertige Programm außerhalb von Delphi starte).

Im Debug Modus komme ich überhaupt nicht weiter, Delphi bleibt dann in der Zeile
Code:
fMainForm.coMariaDb.Connect
hängen und möchte gerne, das ich abbreche.

Meine bisheriges Suchen zu diesem Thema hat mich nicht wirklich weitergebracht. Daher hoffe ich, hier Hilfe zu finden.
  1. Im Debugmodus trotz ConnectionTimeOut weiter Debuggen, was muss ich da machen?
  2. Die Meldung ConnectionTimeOut unterbinden?

Best Grüße Gerd

stifflersmom 10. Jul 2023 13:38

AW: Connection Fehler von MYSQL Server auswerten
 
Ein try except Block um Dein connect sollte Dich deutlich weiterbringen...

ggscholz 10. Jul 2023 13:54

AW: Connection Fehler von MYSQL Server auswerten
 
@stifflersmom
Delphi-Quellcode:
try
myDbConnection.connect;
except
on E: EDAErorr......
habe ich so gemacht, Delphi bleibt aber im Debugmodus beim connenct hängen und weigert sich, nach der Timeout Meldung weiter durchs Programm zu gehen.

Grüße gerd

anse 10. Jul 2023 21:37

AW: Connection Fehler von MYSQL Server auswerten
 
Dann ist es vielleicht kein
Code:
EDAErorr
?

himitsu 10. Jul 2023 22:52

AW: Connection Fehler von MYSQL Server auswerten
 
Zitat:

Access Denied for User ‘root’@’localhost
Zitat:

Rückgabewerten des MYSQL Servers auszuwerten
Fehlermeldungen des Servers kommen natürlich nur, wenn der Datenbank-Server antwortet.

Also z.B. bei falschem NutzerName oder Passwort.

Ein falscher Host/IP/... oder Port und schon kann der DB-Server garnicht antworten,
womit also der Fehler von der Connection-Komponente kommt.



Es kann passieren, dass es keinen Timout gibt, bzw. dass er nicht so lange dauert, wie man angibt.
Bei pgDAC und auch DataSnap habe/hatte ich mal so ein Problem. Egal was ich bei den TimeOut-Property angab, es dauerte meistens viel länger.

Das Problem wurde dann ganz einfach gelöst.
Der Hersteller entfernte einfach diese Property (in neueren Versionen für ein aktuelleres Delphi) :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz