Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]? (https://www.delphipraxis.net/59357-kann-man-den-timeout-bei-einer-abfrage-hochsetzen%5Bmssql%5D.html)

alzaimar 21. Dez 2005 09:18

Datenbank: MSSQL • Version: 2000 • Zugriff über: TCP/IP

Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]?
 
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)

marabu 21. Dez 2005 10:08

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]
 
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

Sir Rufo 21. Dez 2005 11:12

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]
 
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

alzaimar 21. Dez 2005 12:45

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]
 
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. :bounce1:

@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)

Sir Rufo 21. Dez 2005 14:45

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

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 ...

nieurig 21. Dez 2005 14:51

Re: Kann man den Timeout bei einer Abfrage hochsetzen[MSSQL]
 
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


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