Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TimeOut Zeit bei TADOConnection wird nicht eingehalten?! (https://www.delphipraxis.net/110531-timeout-zeit-bei-tadoconnection-wird-nicht-eingehalten.html)

DelphiManiac 19. Mär 2008 14:51

Datenbank: SQL Server Express • Version: 2005 • Zugriff über: TADOConnection

TimeOut Zeit bei TADOConnection wird nicht eingehalten?!
 
Hallo,

ich habe folgendes Phänomen, aber keine Erklärung dafür.

Ich stelle per ADOConnection (über SQL NATIVE CLIENT) eine Verbindung zum SQL Server 2005 Express her.
Mit folgendem Quellcode:

Delphi-Quellcode:
FServerName:=ServerName;
  FDateiPFad:=DateiPfad;
  conn_string:='Provider=SQLNCLI.1;Server='+FServerName+';Integrated Security=SSPI;'
      +'Persist Security Info=False;Initial Catalog=cab';
  FDB_Connection:=TADOConnection.Create(nil);
  FDB_Connection.LoginPrompt:=False;
  FDB_Connection.ConnectionTimeout:=10; // Timeoutzeit
  FDB_Connection.ConnectionString:=conn_string;
  try
    try
      FDB_Connection.Open;
    finally
      if not(FDB_Connection.Connected) then
      begin
        MessageDlg('Fehler beim Herstellen der Datenbankverbindung',mtError,[mbOK],0);
      end;
    end;
  except
    on E: Exception do
    begin
        MessageDlg(E.Message,mtError,[mbOK],0);
    end;

  end;
end;
Über die TimeOut-Zeit kann ich ja meiner Connection sagen wann sie spätestens aufhören soll zu versuchen mit der DB sich zu verbinden. Auf meinem Entwicklungsrechner klappt das auch, die Zeit wird eingehalten....
Auf dem Laptop (frisch aufgesetzt mit WINXP) werden aus den 10 Sekunden über 60 Sekunden und meine Anwendung hängt natürlich eine Minute...
Dann kommt es wie gewollt zur Exception... (aber halt viiiiel zu spät)

:?:

Vielleicht habt ihr ja eine Ahnung...
Danke Gruß
DelphiManiac

DelphiManiac 20. Mär 2008 14:59

Re: TimeOut Zeit bei TADOConnection wird nicht eingehalten?!
 
*push* :cat:

sx2008 24. Mär 2008 06:35

Re: TimeOut Zeit bei TADOConnection wird nicht eingehalten?!
 
Ich würd mal sagen, das nichtbeachten des Timeouts liegt nicht in deiner Hand.
Man könnte MDAC letzte Version (2.8 SP1 ?) installieren und man in der Registry suchen
(Key: SPTimeout) siehe auch: http://forums.devx.com/archive/index.php/t-48033.html

Deine Exceptionhandling ist übrigens ziemlich schlecht (um nicht zu sagen ganz falsch):
Delphi-Quellcode:
 try
    FDB_Connection.Open;
  except
    on E: Exception do
    begin
      // erstmal ein ganz saubere, informative Meldung erzeugen
      E.Message := 'Fehler beim Herstellen der Datenbankverbindung. Server: '+FServerName +#13#10+
        E.Message; // und nicht vergessen den eigentlichen Grund anzuhängen

      // und dann der Exception sein Lauf lassen
      Raise;
    end;
  end;
end
;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 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