![]() |
connection zum Server
Hallo, ich habe eine Anwendung, welche auch außerhalb eines Firmennetzes mit einer NAT-IP gestartet werden soll. Dazu haben wir die NAT-IP in einem ini-File "verpackt" und im Quellcode bei 'on create'folgendes festgelegt:
Delphi-Quellcode:
Warum aber, versucht das Programm trotzdem zuerst auf die 12.345.678.910 zuzugreifen?
ConnString :=
'Provider=SQLOLEDB.1;Persist Security Info=False;' + 'User ID=%s;Password=%s;Data Source=%s;Use Procedure for Prepare=1;' + 'Initial Catalog=ABCDEF;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;'+ 'Tag with column collation when possible=False'; UserName := 'DMT#'; PassWord := 'dmt'; IP := GetIPfromINI('NAT_IP.ini'); 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]); DM.AdoConnection1.Open; DM.ADOCon__DWH.ConnectionString := Format(ConnString,[UserName, PassWord, IP]); DM.ADOCon__DWH.Open; if IP = '12.345.678.910'then Memo1.Lines.Append('Connection to IP: 12.345.678.910') else Memo1.Lines.Append('Connection to NAT IP: ' + IP); except on E: Exception do begin Memo1.Lines.Append('No connection to database available, please check IP in the NAT_IP.ini!') ; end; end; Viele Grüße und Danke für jede Hilfe! |
AW: connection zum Server
Kann es sein, dass die ADOConnection mit
Delphi-Quellcode:
compiliert wurde? ;)
Active := True
Das
Delphi-Quellcode:
Event wird aufgerufen nachdem alle Komponenten (auch die ADOConnection) erzeugt wurden. Und wenn die mit
OnCreate
Delphi-Quellcode:
compiliert wurde, dann verbindet die sich halt erst einmal
Active := True
|
AW: connection zum Server
nein, leider nicht:(
die ADOConnection steht auf 'Connected:= false' und alle Querys, welche die Connection nutzen, stehen auf 'Active:= false'. |
AW: connection zum Server
Zitat:
So als Tip, ich würde die Verbindungseigenschaften im Event ![]() Wenn du dann noch einen Haltepunkt auf diesen Event setzt, dann kannst du auch über den CallStack sehen, wer da die Verbindung so öffnet (auch wenn es dir eigentlich egal sein könnte) |
AW: connection zum Server
Entferne mal den Connectionstring im Objektinspektor und compiliere/starte das Programm erneut.
Was passiert? |
AW: connection zum Server
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 :x
Leider immer das selbe Ergebnis. |
AW: connection zum Server
Nur mal doof gefragt. Was steht denn in der variablen IP?
Sicher das der Zugriff auf die INI funzt? |
AW: connection zum Server
wenn ich das Codebeispiel bei 'beforeConnect' hineinschreibe bekomme ich eine Fehlermeldung: EStackoverflow mit der Meldung 'Stack-Überlauf'
|
AW: connection zum Server
Du schreibst im BeforeConnect' natürlich nicht 'MyConnection.Open;' rein. Denn dann wird ja 'BeforeConnect' aufgerufen (schätze ich).
Aber Du hast einen Wurm in deiner SW, wenn Du nicht mal weißt, wo die Verbindung aktiviert wird. |
AW: connection zum Server
so wird die ini ausgelesen:
////////////ini auslesen function GetIPfromINI(cFile:string):string; var ini: TIniFile; filename: String; begin Result:=''; filename := ExtractFilePath(ParamStr(0)) + cFile; ini := TIniFile.Create(filename); try Result := ini.ReadString('connection', 'IP', '12.345.678.910'); finally ini.Free; end; end; //////////////////////////////////// die ini heißt auch richtig und steht im gleichen Ordner wie die .exe. Wäre super, sollte jemand noch eine Idee haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 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