DB Connection abfragen?



  • Hi Leutz,

    möchte gerne ein Fenster öffnen, sobald beim Programmstart keine Verbindung zur Datenbank aufgebaut werden kann. Mein Code klappt aber nicht.

    void __fastcall TFmain::FormShow(TObject *Sender) //Hauptformular
    {
    
    ADOConnection1->Connected = false;  //Nur zum Testen
    
    try
            {
            ADOConnection1->Connected = true;
    
            }
    
    catch (...)
    
            {
            Fdbconnection = new TFdbconnection(this);
            Fdbconnection->ShowModal();
            }
    }
    

    Vielen dank für eure Hilfe im Voraus.



  • Ähmmm, sind zum Zeitpunkt von OnShow nicht schon alle Formulare erzeugt? Oder hast du das aus der Liste rausgenommen? Gibt es irgendwelche _konkreteren_ Fehlermeldungen?



  • Keine Fehlermeldungen! Das Prog läüft ganz normal halt ohne Verbindung zur DB.



  • Vielleicht hast du ja doch eine Verbindung. Schreib doch mal zum testen etwas wie ShowMessage("Hallo!"); in den catch(...) Block (am Anfang, verständlich), um zu sehen, ob er überhaupt dort hineinspringt...



  • Dasd schrieb:

    Schreib doch mal zum testen etwas wie ShowMessage ... um zu sehen, ob er überhaupt dort hineinspringt...

    Die Begriffe "Debugger", "Haltepunkt" und "durchsteppen" sagen dir etwas? 😉

    Davon abgesehen ist zum Erreichen des catch-Blockes natürlich eine Exception notwendig, und die entsprechende Meldung kann man eigentlich nicht übersehen. Es sei denn, man war so unklug und hat die Exceptions in der IDE deaktiviert.

    Derberon:
    Dass u.U. auch das zugehörige DataSet wieder aktiviert werden muss hast du beachtet?



  • Jansen schrieb:

    [Die Begriffe "Debugger", "Haltepunkt" und "durchsteppen" sagen dir etwas? 😉

    Jepp, sagt mir was, aber seit ich mit DirectX und BCB arbeite, nützt mir der BCB sobald das Programm läuft, nichts mehr. Wenn das Programm dann abstürtzt, hilft nur noch ein "dezentes" Abschießen des BCB. Hab' mich inzwischen aber daran gewöhnt.



  • Du bist dir also sicher, dass Derberon a) ebenfalls DirectX verwendet und b) ihm dadurch sein BCB ebenfalls "nichts mehr nützt"? Es scheint doch leicht unpassend, jemandem auf solche Vermutungen hin Steinzeit-Debuggingmethoden zu empfehlen, oder? 😉



  • Nein, hab' ich das irgendwo geschrieben? Kann mich nicht daran erinnern. Aber wie gesagt, ich _habe_ mich inzwischen daran gewöhnt. So sehr, dass ich dieses Denken inzwischen auch auf andere Projekte übertrage... Fehler meinerseits. 😃



  • der code reicht meist nicht um eine exception zu erzeugen. Dies scheint auch bei den Datenbanken unterschiedlich zu sein. Ich habe meist noch 'ne Query geöffnet und noch darauf zugegriffen, eh ich eine exception ganz sicher bekam bei nicht vorhandener Verbindung.


Anmelden zum Antworten