AGB  ·  Datenschutz  ·  Impressum  







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

AdoConnection in eigenen Thread

Ein Thema von Tim Henford · begonnen am 26. Sep 2008 · letzter Beitrag vom 26. Sep 2008
Antwort Antwort
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#1

AdoConnection in eigenen Thread

  Alt 26. Sep 2008, 10:26
Hallo,

ich habe das Problem, dass wenn ich ADOConnection.Connected:= true; aufrufe und keine Verbindung zum SQL-Server bekomme, dass sich mein Programm komplett aufhängt.

Nun wollte ich das verhindern, indem ich das ganze in einen Thread packe - macht das Sinn?
Es soll nur verhindert werden, dass das Programm komplett abschmiert und nach 15sek Wartezeit eine Meldung ausgegeben wird und der User trotzdem weiter machen kann.

Delphi-Quellcode:
unit U_TimerThread;

interface

uses
  Classes, Windows;

type
  TimerThread = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

implementation

procedure TimerThread.Execute;
begin
  ADOCon.Connected:= true;
end;
beim Verbindungs-ButtonClick:
Delphi-Quellcode:
var
  timerT : TimerThread;
begin
  TimerT := TimerThread.create(true);
  TimerT.Resume;
end;
wie krieg ich jetzt mit, ob 15s rum sind und nix passiert ist, sodass ich den Thread wieder beenden kann?

Danke Tim
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: AdoConnection in eigenen Thread

  Alt 26. Sep 2008, 10:34
15 Sekunden bekommst du am besten mit einem Timer mit

Aber es macht keinen Sinn, nur den einen Befehl in den Thread zu legen. Du musst schon die ganze Komponente in den Thread auslagern.
Ist auch besser so, dann kannst du den Thread gleich komplett für alle Datenbankabfragen stehen lassen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: AdoConnection in eigenen Thread

  Alt 26. Sep 2008, 10:37
Also ich pinge den Server vorher an. Dazu extrahiere ich die SQL-Server Adresse aus dem Connectionstring und bete, das der Server Pings auch wirklich beantwortet. Bei meinen Installationen ist das aber i.A. der Fall.

Du kannst aber auch mit der Eigenschaft 'ConnectionTimeout' herumspielen. Letztendlich kann es aber durchaus in Einzelfällen einige Sekunden dauern, bis eine Verbindung zustande kommt. Insofern frickelst du vielleicht an der falschen Stelle herum.

Ich würde einfach einen Dialog anzeigen 'DB-Verbindung zu xxx.xxx.xxx.xxx wird aufgebaut' oder irgendwie so.

Was kann der Anwender eigentlich so alles mit deiner Anwendung anstellen, wenn noch keine Verbindung zustande gekommen ist? Nicht viel, denke ich und insofern ist das Auslagern in einen Thread doch überflüssig.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:08 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