AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADO Verlorene Verbindung wieder finden
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Verlorene Verbindung wieder finden

Ein Thema von arnof · begonnen am 28. Dez 2015 · letzter Beitrag vom 30. Dez 2015
 
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: ADO Verlorene Verbindung wieder finden

  Alt 28. Dez 2015, 19:20
Das geht aber nicht anders. Die Verbindung die sie aufgebaut haben sind zwangsweise schon "Tot" auch wenn Active noch auf True steht.
Genau Die Fehlermeldung wird erst ausgelöst, wenn man so ein "totes" Dataset in Anspruch nimmt.

Lösung z.Z. AdoConnection auf Connected=False setzen, ConnectionsString leeren, neu Befüllen und neu Verbinden, dann geht wieder alles.
Wieso mußt du den Connectionstring neu zuweisen? Hat sich denn in der Zwischenzeit an den Verbindungsdaten etwas geändert?

Das ist leider schlecht da viele DataSets offen sind und ich eigentlich dem AdoConnection sagen will, das er sich erneut verbinden soll, ohne die anderen DataSet zu schließen
Was ist daran schlecht? Machst du das beim Programmstart nicht ebenfalls? Die Frage bezieht sich darauf, daß ich immer wieder beobachte, wie Programmierer ihrer Anwendungen mit aktiver Datenbankverbindung kompilieren oder die Datenbankverbindung aktiv ist, wenn sie Delphi schließen. Das ist keine gute Idee, denn erstens ist nicht immer garantiert, daß der Datenbankserver und/oder die jeweilige Datenbank erreichbar ist, was zu Fehlermeldungen bereits beim Start der IDE führen kann. Und zweitens ist das kein guter Programmierstil, finde ich, weil das zu unerwartetem Verhalten führen kann.

In meinen Datenbank-Anwendungen gibt es immer eine Function TDatMod.Verbinden_Datenbank : Boolean ; und eine Function TDatMod.Verbinden_Queries : Boolean; . Liefert die erste False zurück, lese ich das Property Fehlertext aus meinem Datenmodul aus und beende das Programm mit dieser Fehlermeldung. Dasselbe dann für die zweite Funktion. Zudem kann ich so erstens steuern, in welcher Reihenfolge meine Datasets oder Queries aktiviert werden sollen, und zweitens, welche Queries gleich geöffnet werden und welche erst bei Bedarf. In bestimmten Fällen benötige ich auch mal eine Procedure TDatMod.Schliessen_Queries; oder Procedure TDatMod.Disable_DataSources; All das habe ich in einem Default-Datenmodul bereits vorbereitet, und weil ich die DB-Connection immer ConMain nenne und ich immer eine Benutzer-Tabelle für benutzerdefinierte Einstellungen habe, existiert auch immer schon ein Qset_Benutzer, so daß ich beide Funktionen schon mal drin habe.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz