AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

connection zum Server

Ein Thema von claudine99 · begonnen am 11. Mär 2013 · letzter Beitrag vom 19. Mär 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#1

connection zum Server

  Alt 11. Mär 2013, 10:08
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:
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;
Warum aber, versucht das Programm trotzdem zuerst auf die 12.345.678.910 zuzugreifen?

Viele Grüße und Danke für jede Hilfe!

Geändert von mkinzler (11. Mär 2013 um 10:10 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: connection zum Server

  Alt 11. Mär 2013, 10:47
Kann es sein, dass die ADOConnection mit Active := True compiliert wurde?

Das OnCreate Event wird aufgerufen nachdem alle Komponenten (auch die ADOConnection) erzeugt wurden. Und wenn die mit Active := True compiliert wurde, dann verbindet die sich halt erst einmal
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#3

AW: connection zum Server

  Alt 12. Mär 2013, 13:11
nein, leider nicht
die ADOConnection steht auf 'Connected:= false' und alle Querys, welche die Connection nutzen, stehen auf 'Active:= false'.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: connection zum Server

  Alt 12. Mär 2013, 13:20
nein, leider nicht
die ADOConnection steht auf 'Connected:= false' und alle Querys, welche die Connection nutzen, stehen auf 'Active:= false'.
Das alle verbundenen DataSets dann auch nicht aktiv sind, ist logisch

So als Tip, ich würde die Verbindungseigenschaften im Event Delphi-Referenz durchsuchenTADOConnection.BeforeConnect setzen, dann kannst du sicher sein, wenn die Verbindung geöffnet wird (egal von wo und wem) sind auch die richtigen Verbindungsparameter gesetzt

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)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: connection zum Server

  Alt 12. Mär 2013, 13:21
Entferne mal den Connectionstring im Objektinspektor und compiliere/starte das Programm erneut.

Was passiert?
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#6

AW: connection zum Server

  Alt 12. Mär 2013, 13:36
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
Leider immer das selbe Ergebnis.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: connection zum Server

  Alt 12. Mär 2013, 15:45
Nur mal doof gefragt. Was steht denn in der variablen IP?
Sicher das der Zugriff auf die INI funzt?
Ralph
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#8

AW: connection zum Server

  Alt 12. Mär 2013, 17:37
wenn ich das Codebeispiel bei 'beforeConnect' hineinschreibe bekomme ich eine Fehlermeldung: EStackoverflow mit der Meldung 'Stack-Überlauf'
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: connection zum Server

  Alt 12. Mär 2013, 17:56
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.
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#10

AW: connection zum Server

  Alt 12. Mär 2013, 18:00
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 12:22 Uhr.
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