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


  • Mod

    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


  • Mod

    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


Anmelden zum Antworten