![]() |
AW: connection zum Server
Zitat:
Delphi-Quellcode:
die richtige IP-Adresse enthält? Hast du dir einen Breakpoint auf diese Zeile gesetzt und durchgesteppt?
IP := GetIPfromINI('NAT_IP.ini');
Zitat:
Delphi-Quellcode:
nicht deinen Wünschen entsprechend. Auszug aus der Hilfe:
DM.AdoConnection1.CLOSE;
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
Delphi-Quellcode:
zu schließen.
DM.AdoConnection1.Connected := false;
Zitat:
Zitat:
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. |
AW: connection zum Server
Wie wäre es denn die "default"-adresse auf einen Phantasiewert zu setzen, und die "richtige" Adresse aus der INI zu laden? Dann müßte sich das Fehlverhalten beim Kunden nachstellen lassen.
Was das Debuggen angeht, bei solch hartnäckigen Fällen hilft oftmals geduldiges Betätigen von F7. Gruß K-H |
AW: connection zum Server
TADOConnection.Connected:= false;-> hab ich
KeepConection := false;-> hab ich ich habe einen Haltepunkt an das Ende der Funktion 'ini auslesen' gesetzt und mich dann durchgehangelt: ADOConnection.ConnectionString stimmt - wenn ini vorhanden, dann IP aus ini, sonst die 12.345.678.910.... es gibt einige Units, die ein 'on create' haben, unter 'uses' das Datenmodul steht und ein 'select' zum Laden von CheckListboxen ausführen-> Fehlerquelle? |
AW: connection zum Server
@p80286
hab ich gemacht. Funktioniert bei mir. Kann aber auch daran liegen, dass ich ja auf die 12.345.678.910 darf, aber der externe Partner nicht. |
AW: connection zum Server
Zitat:
Zitat:
Zitat:
Ich habe mir angewöhnt, alle Verbindungen, die ich aufbaue, zentral von einer Stelle aus zu machen, und zwar im OnShow des Hauptformulars, wo z.B. erst einmal die Existenz einer eventuell notwendigen Ini-Datei überprüft und selbige ausgelesen wird, danach die Verbindung zur Datenbank hergestellt wird und danach erst alle Einstellungen, die in der Datenbank gespeichert sind (z.B. auch mal das Befüllen und Einstellen von Checklistboxen) vorgenommen werden. |
AW: connection zum Server
@ Frank,
Danke, da werd ich mir mal die Units vornehmen. Der Inhalt der variablen IP stimmt jedenfalls. Claudia |
AW: connection zum Server
Liste der Anhänge anzeigen (Anzahl: 1)
Also so wirst du da nicht weiterkommen ... und wir noch viel weniger ...
Ich würde mal vorschlagen du baust dir in das OnBeforeConnect Event der Connections einen StackTrace-Log ein, damit du erfährst, wer denn da die Verbindung auslöst (und ob es überhaupt die sind). Im Anhang findest du die Units für das Loggen (Quelle ![]() Einfach im Projekt-Verzeichnis auspacken und dann wie folgt dein Projekt bearbeiten: In der DPR-Datei
Delphi-Quellcode:
Überall wo du jetzt den StackTrace benötigst fügst du einfach (SynCommons bei uses nicht vergessen) folgendes ein:
uses
SynCommons, // Unit hinzufügen ...; begin // Alle Logs in die Datei schreiben with TSynLog.Family do begin Level := LOG_VERBOSE; end; ... end.
Delphi-Quellcode:
Wichtig ist es jetzt beim Compilieren die MAP-Datei erzeugen zu lassen (Projekt/Optionen/Delphi-Compiler/Linken/Map-Datei = Detailiert) um auch die Namen im StackTrace zu sehen.
uses
SynCommons, ...; // StackTrace in Log-Datei TSynLog.Add.Log( sllStackTrace ); Für die Auslieferung wird nur noch die MAB-Datei benötigt (ist eine sehr stark komprimierte MAP-Datei und wird automatisch beim ersten Start der Anwendung selber erstellt). Die Log-Dateien werden default im Anwendungs-Verzeichnis geschrieben. |
AW: connection zum Server
Danke Dir Sir Rufo, probiere ich aus. Ich halte Euch auf dem Laufendem:thumb:
|
AW: connection zum Server
Das mit dem Stack-trace... geht das nicht einfacher? Im Before-Connect einen Breakpoint setzen und dann den Aufrufstack anschauen?
Ich denk ja immer noch, das in der DFM eine der verknüpften Datasets auf 'Active = True' gesetzt ist. Böse Falle: Man schaut, ob die ADOConnection im DFM connected ist... Nein, super, alles klar. Das aber ein Dataset beim Öffnen implizit per verknüpfter ADOConnection eine Verbindung herstellt, vergisst man leicht. Außerdem gibt es zwei ADOConnection-Komponenten. Sind beide geprüft? Ich verwende die GExperts und da gibt es die Möglichkeit unter "Set Component Properties" einzustellen, das bestimmte Eigenschaften beim Programmstart garantiert den eingestellten Wert haben. Bei mir setze ich immer
Delphi-Quellcode:
, sowie
TADOConnection.Connected := False
Delphi-Quellcode:
.
TDataset.Active := False
Das GExpert-Modul parst dann vor dem Compilieren die DFM und stellt o.g. constraints sicher. Problem gelöst (bei mir zumindest). |
AW: connection zum Server
Zitat:
Danach hattest du in #5 den Rat gegeben: "Entferne mal den Connectionstring im Objektinspektor und compiliere/starte das Programm erneut." und claudine99 hat geantwortet: "Hab ich schon vorher entfernt. Ich baue die Connection ja erst auf, wenn gestetet wurde, ob es ein ini gibt. So sollte es jedenfalls sein." Also mal ehrlich, mir kommt das alles ziemlich seltsam vor ... wenn mein Delphi sich so verhalten würde, käme ich glatt auf die Idee, mein PC sei kaputt :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 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