CDatabase::IsOpen() !?



  • meine anwendung prüft ob sie eine verbindung zum MySQL-Server hat mit IsOpen(). wenn ich den server-prozess im taskmanager kille gibt die funktion immer noch TRUE zurück, obwohl das dann bestimmt nicht der fall sein kann !??



  • Red Skall schrieb:

    meine anwendung prüft ob sie eine verbindung zum MySQL-Server hat mit IsOpen(). wenn ich den server-prozess im taskmanager kille gibt die funktion immer noch TRUE zurück, obwohl das dann bestimmt nicht der fall sein kann !??

    jo, der wird dort auch keine erneute abfrage schicken, sondern nur schauen, ob er die datenbank zeitnah schon mal korrekt geoeffnet und nicht wieder geschlossen hat.
    der im anderen thread angesprochene try-catch block koennte dir aber helfen.

    Esco



  • jo, das war super. danke 😉 und für dieses problem gibts keine gescheite lösung, oder !?



  • Red Skall schrieb:

    jo, das war super. danke 😉 und für dieses problem gibts keine gescheite lösung, oder !?

    ich erkenne gar kein problem 🙂
    grundsaetzlich solltest du alle datenbankzugriffe im try und catch block halten. wenn du die open-methode abfragst, und ein 'true' zurueckkommt, dann ist ja eigentlich alles wunderbar. wenn du dann eine zeitlang keine abfragen an der datenbank durchfuehrst, solltest du das ding eh schliessen, und dann wider oeffnen, wenn du es brauchst.
    ansonsten: vor jedem zugriff das ding schliessen und wieder oeffnen, und dann die open-methode abfrage. du kannst die open-methode auch ueberschreiben, so dass vor jedem oeffnen die datenbank ersma geschlossen wird.

    Esco


Anmelden zum Antworten