Форум: "Базы";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
ВнизCommandTimeout в ADO Найти похожие ветки
← →
BoxTer (2003-08-01 09:16) [0]Доброе время суток.
Столкнулся с такой проблемой, клиентская прога ожидает выполнения процедуры на сервере вызванной командой ExecProc; Расчеты долгие, данных много. Через 30 сек вываливается сообщение "Timeout expired" - с этим понятно, но почему через 30 сек и как мне увеличить значение?
Пробовал в свойствах соединения, в файлике ADODB.pas (и пробовал копировать его в delphi\lib) - ничаво не помогает... Усе равно 30 сек...
← →
KSergey (2003-08-01 09:32) [1]BoxTer © (01.08.03 09:16)
Доброе время суток.
Столкнулся с такой проблемой, клиентская прога ожидает выполнения процедуры на сервере вызванной командой ExecProc; Расчеты долгие, данных много. Через 30 сек вываливается сообщение "Timeout expired" - с этим понятно, но почему через 30 сек и как мне увеличить значение?
Пробовал в свойствах соединения, в файлике ADODB.pas (и пробовал копировать его в delphi\lib) - ничаво не помогает... Усе равно 30 сек...
Ой, зачем же так грубо-то поступать? ;)
Все проще. Надо пользовать ADOConnection и ADOCommand, ADODataSet
Эти компоненты покрывают польностью все потребности при соотв. настройках, там же есть настройка таймаутов.
А в ADOQuery и ADOStoredProc (про ADOTable я молчу) 30 сек задано насмерть, т.к. эти компоненты существуют лишь для облегчения перехода с предыдущих версий движков БД дельфи.
← →
BoxTer (2003-08-01 09:36) [2]а шо железо не изменить?
блин, влом переделывать...
← →
KSergey (2003-08-01 10:21) [3]Переделать там - 5 минут
Ну и еще 2 часа на состыковку, возможно ;)
Хатя вообще-то это я так, запугиваю
А переделок там действительно немного, а вот 30 сек таймаута вшиты насмерть (посмотрите исходники; возможно выяснится, что я что-то путаю, но на памяти осталась именно такая информация когда смотрел).
← →
sniknik (2003-08-01 10:51) [4]проблема сушествовала до 6х дельфей без апдейтов, а в в пятых сам боролся подключая и переписывая ADODB (там менял значения по дефаулту или перед вызовом команды). но проще по моему все апдейты на дельфи поставить, тогда значения таймаута должны будут менятся.
← →
KDS (2003-08-01 11:08) [5]Блин, а у меня обратная проблема: не знаю как обломать долговыполняющийся запрос к БД через IBObjects
← →
BoxTer (2003-08-01 11:15) [6]какие апдейты, у меня стоят: D5EntUpdate, d5adoupdate2 ???
← →
sniknik (2003-08-01 11:25) [7]> какие апдейты
http://se-ed.net/thaidelphicc/xml/updatepack/
посмотри, хотя я только про 6-ку точно знаю. причем ставил поочередно 1 после 2 ... (хотя 2 вроде первый включает), но чегото там "несрасталось".
← →
Polevi (2003-08-01 12:36) [8]procedure TCustomADODataSet.OpenCursor(InfoQuery: Boolean);
...
...
явно указал таймаут
Source.CommandTimeout:=120;
ActiveConnection.CommandTimeOut:=120;
Recordset.Open(Source, ActiveConnection,
CursorTypeValues[FCursorType], LockTypeValues[FLockType],
( ExecuteOptions) procedure TCustomADODataSet.OpenCursor(InfoQuery: Boolean);
...
...
явно указал таймаут
Source.CommandTimeout:=120;
ActiveConnection.CommandTimeOut:=120;
Recordset.Open(Source, ActiveConnection,
CursorTypeValues[FCursorType], LockTypeValues[FLockType],
CommandTypeValues[CommandType] + ExecuteOptionsToOrd(ExecuteOptions));
и получаю Timeout expired через 30 сек
???
← →
Polevi (2003-08-01 13:02) [9]ok, решил проблему
type
THackAdoDataset=class(TCustomAdoDataset);
procedure DatasetBeforeOpen(DataSet: TDataSet);
begin
THackAdoDataset(Dataset).Command.CommandObject.CommandTimeout:=666;
end;
← →
KSergey (2003-08-01 13:08) [10]Это все, конечно, интересно, но вопрос: зачем????? Ну есть же готовые компоненты! Какая разница на что переделывать: на THackAdoDataset или TADODataSet???!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.08.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c