Benutzer mit den meisten Antworten
CDatabase IsOpen() liefert TRUE, obwohl die Datenbank die Verbindung getrennt hat

Frage
-
Hallo,
ich öffne mit CDatabase eine MySQL-Datenbank via ODBC.
CDatabase mydb;
mydb.OpenEx(...);
Wenn der Datenbank-Server z.B. neu gestartet wird, wird die Verbindung zu CDatabase getrennt.
Dies erkennt CDatabase mit IsOpen() aber nicht! IsOpen() liefert mir ein TRUE.
Tatsächlich ist die Verbindung aber weg. Ein Zugriff auf die Datenbank liefert mir dann die Fehlermeldung "MySQL has gone away".if (mydb.IsOpen()) mydb.ExecuteSQL(...);
Mit welchem CDatabase-Befehl kann ich prüfen, ob die Verbindung wirklich noch besteht?
Danke für Hilfe, Guido
Antworten
-
Hallo Guido,
Mit welchem CDatabase-Befehl kann ich prüfen, ob die Verbindung wirklich noch besteht?
Mit gar Keinem, selbst wenn IsOpen() dies prüfen würde, könnte das im ExecuteSQL(..) danach schon historisch sein. Es ist wie bei Dateizugriffen, es kann immer schief gehen, rechne damit und behandle den Fehler entsprechend.
- Gruß Florian
- Als Antwort markiert Guido Franzke Mittwoch, 8. Februar 2017 10:22
-
Ok schade.
Ich fange nun die Exception ab bei ExecuteSQL.
- Als Antwort markiert Guido Franzke Mittwoch, 8. Februar 2017 10:22
Alle Antworten
-
Hallo Guido,
Mit welchem CDatabase-Befehl kann ich prüfen, ob die Verbindung wirklich noch besteht?
Mit gar Keinem, selbst wenn IsOpen() dies prüfen würde, könnte das im ExecuteSQL(..) danach schon historisch sein. Es ist wie bei Dateizugriffen, es kann immer schief gehen, rechne damit und behandle den Fehler entsprechend.
- Gruß Florian
- Als Antwort markiert Guido Franzke Mittwoch, 8. Februar 2017 10:22
-
Ok schade.
Ich fange nun die Exception ab bei ExecuteSQL.
- Als Antwort markiert Guido Franzke Mittwoch, 8. Februar 2017 10:22