AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]?
Thema durchsuchen
Ansicht
Themen-Optionen

Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]?

Ein Thema von alzaimar · begonnen am 21. Dez 2005 · letzter Beitrag vom 21. Dez 2005
Antwort Antwort
alzaimar
(Moderator)

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

Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]?

  Alt 21. Dez 2005, 10:18
Datenbank: MSSQL • Version: 2000 • Zugriff über: TCP/IP
Wir haben hier einen hübschen Reportgenerator, der per TCP-Library an einem MSSQL-Server 2000 hängt.

Bei einer sehr komplexen Abfrage, die nun mal lange dauert, kommt es zu einem Timeout. Kann man den nicht irgendwo hochsetzen? Da wir den Reportgenerator handgebissen haben, kommen wir auch an sämtliche ADO-connectionstrings ran. Das wär also nicht das Problem...

Ich hab total ein Brett vor dem Kopf...

Danke schonmal

(crossposting im DF)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]

  Alt 21. Dez 2005, 11:08
Hallo alzaimar,

kommt der TimeOut nach 30 Sekunden? Das ist der Default-Wert, der in der Delphi Online Hilfe erwähnt wird. Laut SQL Server Handbuch kann ich meine ADO queries mit CommandTimeOut = 0 unbegrenzt lange laufen lassen, aber meine Beobachtung (MSSQL 7 + 8) ist, dass der Wert von 30 Sekunden beibehalten wird - egal was ich angebe. Ich habe dann alles geölt, damit es unterhalb dieser Zeitschwelle blieb, hätte mich aber auch gefreut, wenn ich da hätte kurz dran drehen können.

Insgesamt werden auf dem Weg von Delphi über ADO, DB-Library und TCP ja jede Menge TimeOut-Konfigurationen berührt, aber die 30 Sekunden sehe ich bei den ADO-Command und RecordSet properties. Ich hatte zum Schluß den Eindruck, dass die von mir gemachten Angaben intern gar nicht weiter gegeben werden. Wenn du eine Lösung findest, dann lass mich bitte nicht dumm sterben.

Grüße vom marabu
  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
 
#3

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]

  Alt 21. Dez 2005, 12:12
Hi,

also bei MSSQL kann ich es nicht so direkt sagen (kann ich auch gerade nicht testen) aber ich hole mit ADO von einer AS/400 und da laufe ich auch ab und an in den TimeOut und da funktioniert das einwandfrei wenn man den Timeout höher setzt (allerdings nie auf 0, denn dann haue ich mir ja selber ins Knie, weil dann Endlos sein könnte)

cu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]

  Alt 21. Dez 2005, 13:45
Hi marabu

... Shit (sry, mods) ... genauso (ölen, was das Zeugs hält) sind wir auch vorgegangen, aber jetzt ist zappenduster...

So... langer Test, aber keine Zeit mehr: Bei Asynch-Fetch des Commandsets (und commandtimeout hochschrauben) tritt der Fehler nicht mehr auf.

@Sir rufo: Es scheint am MSSQL-Treiber zu liegen (is auch geil: MS-ADO kriegt ihre hauseigenen Treiber nicht ordendlich hin, aber die der Konkurrenz, he he)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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
 
#5

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]

  Alt 21. Dez 2005, 15:45
Zitat von alzaimar:
@Sir rufo: Es scheint am MSSQL-Treiber zu liegen (is auch geil: MS-ADO kriegt ihre hauseigenen Treiber nicht ordendlich hin, aber die der Konkurrenz, he he)
Ja die eigenen Leisten beim Schuster sind auch nicht immer die Besten ...
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#6

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]

  Alt 21. Dez 2005, 15:51
hi alzaimar,
ich habe das Problem lange nicht gehabt ...
aber das Timeout wird schon im Connectionstring Deines TDataBase Objektes oder über dessen TimeOut Property festgelegt. Ob er sich nach dem herstellen der Verbindung noch ändern läßt? Keine Ahnung.

Du kannst aber Die Verbindung neu aufbauen und vorher den Timeout auf 0 setzen. Dann sollte es klappen.

Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  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 13:12 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