Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   connection zum Server (https://www.delphipraxis.net/173684-connection-zum-server.html)

claudine99 12. Mär 2013 17:16

AW: connection zum Server
 
Den Wurm suche ich ja grad:cry::cry:
Vorher hatte ich den Aufbau der Connection bei 'on create'. Trotzdem wurde zuerst versucht, sich mit der 12.345.678.910 zu verbinden und daach mit der IP aus der ini. Da die Kollegen, welche die ini nutze, icht auf die andere IP kommen, erhalten sie dann immer die Fehlermeldug der fehlenden Connection.

Perlsau 12. Mär 2013 17:20

AW: connection zum Server
 
Zitat:

Zitat von claudine99 (Beitrag 1207124)
so wird die ini ausgelesen:

Delphi-Quellcode:
 Result := ini.ReadString('connection', 'IP', '12.345.678.910');

Schau doch einmal nach, ob nicht hier bereits der Default-Wert als Result zurückgeliefert wird. Womöglich existiert dein Schlüssel nicht oder es ist ihm kein Datenwert zugeordnet.

Auszug aus der Hilfe:

ReadString liest einen String-Wert aus einer INI-Datei.
Der String Section bezeichnet den Abschnitt, der den zum Wert gehörigen Schlüssel enthält.
Der String Ident ist der Name des Schlüssels mit dem Wert.
Default ist der Standardwert, der in den folgenden Situationen zurückgeliefert wird:

1. Der Abschnitt ist nicht vorhanden.
2. Der Schlüssel existiert nicht.
3. Dem Schlüssel ist kein Datenwert zugeordnet.

Sir Rufo 12. Mär 2013 17:27

AW: connection zum Server
 
@Perlsau

:thumb:

@claudine99

Setze dir einen Haltepunkt auf das Ende der Funktion und schau, welchen Wert Result dort bekommt.

BTW: Es macht sich immer gut in ein Programm eine Log-Funktion einzubauen, dadurch sieht man, was dort wirklich passiert, gerade wenn das beim Anwender in Aktion ist.

Furtbichler 12. Mär 2013 17:40

AW: connection zum Server
 
Zitat:

Zitat von Perlsau (Beitrag 1207132)
Schau doch einmal nach, ob nicht hier bereits der Default-Wert als Result zurückgeliefert wird.

Dann würde folgendes nicht passieren:
Zitat:

Zitat von claudine99 (Beitrag 1207129)
Trotzdem wurde zuerst versucht, sich mit der 12.345.678.910 zu verbinden und danach mit der IP aus der ini...

Wann wird denn zum 1.Mal connected (mit der falschen IP)?

Perlsau 12. Mär 2013 19:37

AW: connection zum Server
 
Zitat:

Zitat von Furtbichler (Beitrag 1207139)
Zitat:

Zitat von Perlsau (Beitrag 1207132)
Schau doch einmal nach, ob nicht hier bereits der Default-Wert als Result zurückgeliefert wird.

Dann würde folgendes nicht passieren:
Zitat:

Zitat von claudine99 (Beitrag 1207129)
Trotzdem wurde zuerst versucht, sich mit der 12.345.678.910 zu verbinden und danach mit der IP aus der ini...


Die IP, die in der ersten Connect-Zeile steht, ist zweifellos diejenige IP, die von der
Delphi-Quellcode:
Function GetIPfromINI(cFile:string):string;
zurückgeliefert wird.
Delphi-Quellcode:
  IP := GetIPfromINI('NAT_IP.ini'); // ZUWEISUNG AUS DER FUNCTION AN IP
  DM.AdoConnection1.CLOSE;
  DM.ADOCon__DWH.Close;
  try
     Memo1.Lines.Append('try connect to IP: ' + IP);
     Memo1.Lines.Append('');
     DM.AdoConnection1.ConnectionString := Format(ConnString,[UserName, PassWord, IP]); // ÜBERNAHME DES STRINGS AUS IP
     DM.AdoConnection1.Open;
Weshalb also sollte es nicht passieren können, daß zuerst mit der Default-IP verbunden wird? Denn schließlich wird in
Delphi-Quellcode:
Result := ini.ReadString('connection', 'IP', '12.345.678.910');
genau diese Default-IP angegeben, falls eine der Fehlerbedingungen von
Delphi-Quellcode:
TIniFile.ReadString
zutrifft. Und genau diese Fehlerbedingung könnte eintreffen, ja ist sogar sehr wahrscheinlich, denn sonst stünde in der Variablen IP ja eine andere IP-Adresse als der Defaultwert.

Furtbichler 12. Mär 2013 20:42

AW: connection zum Server
 
Schon klar, aber es werden hier doch 2 Verbindungsversuche unternommen. Die erste mit der (falschen) default IP und die zweite dann mit der richtigen.

Laut Code dürfte es nur einen Verbindungsversuch geben. Das es aber zwei gibt, gehe ich stark davon aus, das es entweder mehr Code gibt (den wir nicht kennen), oder eben das Connect doch beim Start ausgeführt wird (weil es in der DFM so eingestellt ist).

Sehe ich das etwas falsch?

Perlsau 12. Mär 2013 20:48

AW: connection zum Server
 
Zitat:

Zitat von Furtbichler (Beitrag 1207160)
Schon klar, aber es werden hier doch 2 Verbindungsversuche unternommen. Die erste mit der (falschen) default IP und die zweite dann mit der richtigen. Laut Code dürfte es nur einen Verbindungsversuch geben. Das es aber zwei gibt, gehe ich stark davon aus, das es entweder mehr Code gibt (den wir nicht kennen), oder eben das Connect doch beim Start ausgeführt wird (weil es in der DFM so eingestellt ist). Sehe ich das etwas falsch?

Ich glaube schon, daß du das falsch siehst. Laut Code werden beide Verbindungen mit denselben Parametern geöffnet. Wenn die Default-IP eine gültige IP-Nummer darstellt, dann werden auch beide Connects ausgeführt – wenn nicht, dann scheitert der TRY-Block schon beim ersten Versuch. Die Frage war ja Warum aber, versucht das Programm trotzdem zuerst auf die 12.345.678.910 zuzugreifen? – somit besteht das Problem darin, daß nicht mit der vermeintlich in der Ini-Datei existierenden IP verbunden wird, sondern mit der Default-IP. Weshalb auch sollte der zweite Connect nicht ausgeführt werden, wenn der erste erfolgreich war?

Delphi-Quellcode:
DM.AdoConnection1.ConnectionString := Format(ConnString,[UserName, PassWord, IP]);
DM.AdoConnection1.Open;
   DM.ADOCon__DWH.ConnectionString := Format(ConnString,[UserName, PassWord, IP]);
DM.ADOCon__DWH.Open;
Deshalb sollte sie auch zuerst einmal den Rückgabewert ihrer Ini-Auslesefunktion überprüfen. Leider wissen wir nicht, was diese Funktion zurückliefert ...

Furtbichler 12. Mär 2013 21:18

AW: connection zum Server
 
Alles klar. Senile Demenz meinerseits. In letzter Zeit ein häufigeres Problem.

Perlsau 12. Mär 2013 21:20

AW: connection zum Server
 
Zitat:

Zitat von Furtbichler (Beitrag 1207162)
Alles klar. Senile Demenz meinerseits. In letzter Zeit ein häufigeres Problem.

Mach dir nichts draus, da bist du beileibe nicht der einzige :-D

claudine99 13. Mär 2013 15:45

AW: connection zum Server
 
....sorry für das späte Feedback, aber da ich nicht die Möglichkeit habe, die Verbindung mit der NAT-IP zu testen, musste ich auf ein Feedback warten.

Die Auslesefunktion der ini funktioniert. Das habe ich im Debug-Modus getestet. Leider bleibt das Problem weiter bestehen. 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.

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?

Vielen Dank für Eure Mühe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz