Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#21

AW: connection zum Server

  Alt 13. Mär 2013, 17:07
Die Auslesefunktion der ini funktioniert. Das habe ich im Debug-Modus getestet. Leider bleibt das Problem weiter bestehen.
Und du bist dir ganz sicher, daß die Variable IP in deiner Procedure nach der Zuweisung mit IP := GetIPfromINI('NAT_IP.ini'); die richtige IP-Adresse enthält? Hast du dir einen Breakpoint auf diese Zeile gesetzt und durchgesteppt?

Gibt es die ini, wird zuerst angezeigt, 'Connection open. SQL server does ot exist or access denied.' . Erst danach wird versucht, die Verbindung über die IP aus der ini herzustelllen.
Das bedeutet, es besteht bereits eine Verbindung deiner DB-Komponente mit der MS-SQL-Datenbank. Demnach funktioniert nämlich auch dein DM.AdoConnection1.CLOSE; nicht deinen Wünschen entsprechend. Auszug aus der Hilfe:
Mit Hilfe von Connected können Sie auch prüfen, ob ein Aufruf der Methode Open (Connected-Wert true) oder Close (Connected-Wert false) erfolgreich verlaufen ist.

In diesem Fall solltest du herauszufinden suchen, wo in deinem Programm bereits eine solche Verbindung vor dem Einsatz deiner Procedure zustande kommt, vielleicht in DM (Datenmodul) oder in einer anderen Unit, die auf das Datenmodul Zugriff hat. Versuche auch einmal, alternativ mit DM.AdoConnection1.Connected := false; zu schließen.

Weiteren Quellcode in Bezug auf die Connection gibt es nicht.
Kann es auch daran liegen, dass es bei eingebundenen Units ein 'on create' gibt, welches Daten lädt?
Das kannst nur du selbst beantworten, indem du in den eingebundenen Units selbst nachschaust. Aber eigentlich ist das nur schwer vorstellbar, denn die eingebundenen Units "wissen" in der Regel ja nichts von deinen Datenbank-Komponenten, es sei denn, du hast in einer deiner Units eben auch das Datenmodul eingebunden. Wie gesagt, das können wir hier nicht wissen.

Wie sieht es eigentlich mit der Eigenschaft KeepConnection aus?

Mit KeepConnection legen Sie fest, ob eine Anwendung mit einer Datenbank verbunden bleibt, auch wenn aktuell keine zugehörigen Datenmengenkomponenten aktiv sind. Wenn KeepConnection true ist (Voreinstellung), bleibt die Verbindung geöffnet. Bei Verbindungen mit entfernten Datenbankservern oder bei Anwendungen, die häufig Datenmengen öffnen und schließen, sollten Sie KeepConnection auf true setzen. Sie reduzieren auf diese Weise den Datenverkehr im Netzwerk, beschleunigen die Anwendung und umgehen die ständige Neuanmeldung beim Server, die erforderlich ist, wenn die Verbindung wiederhergestellt wird.
  Mit Zitat antworten Zitat