Fehlermeldung beim Datenbank-Connect abfragen oder abfangen - Wie?
-
Hallo Zusammen,
mit meinem Programm baue ich eine Verbindung zu einem MySQL Server auf. Die Daten dafür stehen in einer TXT-Datei.
Das funktioniert auch wunderbar. Jetzt möchte ich das wenn keine Verbindung zu dem Server aufgebaut werden kann, ein anderer Server angesprochen wird.Mein Problem ist jetzt:
Wie finde ich heraus, dass zu dem Server aus der TXT-Datei keine Verbindung aufgebaut werden kann. Wenn ich es so mache wie hier unten und es kommt keine Verbindung zu stande erhalte ich eine Fehlermeldung.Das möchte ich umgehen. Er soll ohne Fehlermeldung zum anderen Server connecten.
So habe ich das momentan:
DataModule1->merchdb_offline->Server = server[0]; DataModule1->merchdb_offline->Username = server[1]; DataModule1->merchdb_offline->Password = server[2]; DataModule1->merchdb_offline->Connected = true; if(!DataModule1->merchdb_offline->Connected) { DataModule1->merchdb_offline->Server = "10.0.0.25"; DataModule1->merchdb_offline->Username = "merch"; DataModule1->merchdb_offline->Password = "EPMS1fckl"; server_label1->Visible = true; server_label2->Visible = true; server_label3->Visible = true; }Kann mir da jemand weiterhelfen??
Danke im voraus
EPMS
-
Hallo
try sollte dir helfen
Mfg
Klaus
-
Hallo KlausB,
danke für deinen Tip. Habe es jetzt mal folgendermaßen gemacht:
try { DataModule1->merchdb_offline->Server = server[0]; DataModule1->merchdb_offline->Username = server[1]; DataModule1->merchdb_offline->Password = server[2]; DataModule1->merchdb_offline->Connected = true; DataModule1->mech_statistik->Server = server[0]; DataModule1->mech_statistik->Username = server[1]; DataModule1->mech_statistik->Password = server[2]; DataModule1->mech_statistik->Connected = true; } catch(...) { DataModule1->merchdb_offline->Server = "10.0.0.1"; DataModule1->merchdb_offline->Username = "user"; DataModule1->merchdb_offline->Password = "pass"; DataModule1->merchdb_offline->Connected = true; DataModule1->mech_statistik->Server = "10.0.0.1"; DataModule1->mech_statistik->Username = "user"; DataModule1->mech_statistik->Password = "pass"; DataModule1->mech_statistik->Connected = true; server_label1->Visible = true; server_label2->Visible = true; server_label3->Visible = true; }Leider kommt immernoch eine Exception. Was habe ich denn da jetzt falsch gemacht??
Ich denke mal das mein Fehler hier liegt.
catch(...)Was muß ich da für "(...)" einsetzen??
Oder ist das nicht mein Fehler??Danke im voraus
BeTZe
-
Hallo
vermutlich kommt der Fehle rnur in im Debugger (laesst sich auch abschalten)
Versuchs mal mit dem fertigen Programm (nicht in der IDE)
MfG
Klaus
-
Hallo
das du trotzdem im Debug-Modus eine Exception im BCB angezeigt bekommst, ist so richtig. Wichtig ist aber, das diese Exception durch catch(...) nicht dem User gezeigt wird, sondern statt dessen der alternative Code im catch-Block ausgeführt wird.
Also sollte in deinem Fall die Daten des zweiten Servers eingetragen werden, oder?bis bald
akari
-
Hallo Ihr beiden,
Ihr hattet Recht. Dem User wird die Exception nicht gezeigt. Die Meldung kam nur wenn ich in der Entwicklungsumgebung auf "Starten" gegangen bin.
Danke nochmal für den Hinweis.
Gruß
EPMS