![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOConnection и его ConnectionTimeout
wsv © (2008-07-29 14:21:00)Как изменить таймаут у сабжа?
Установка значений в инспекторе не рулит.
Исправления ADODB.pas не рулят.
Создание наследника от него не рулит.
Чего еще сделать с ним?
wsv (2008-07-30 09:18:00) [1]Гыыы...
Тему сначала переместили в "Прочее", а теперь в "Начинающим"... :-D
Polevi (2008-07-29 21:33:00) [2]type
THackAdoDataset=class(TCustomAdoDataset);
procedure TForm1.DatasetBeforeOpen(Dataset: TDataset);
begin
THackAdoDataset(Dataset).Command.CommandObject.CommandTimeout:=12345;
end;
Ega23 (2008-07-29 16:47:00) [3]
> смысл, исполняемому коду надо дать "подышать", т.е. выполнять
> команды в которых проверка таймаута есть (select например).
Это интересно. Дома проверю.
sniknik (2008-07-29 16:38:00) [4]> Пиши CommandText (TSQL):
> waitfor delay '00:01:00'
> select OK
это не правильный пример.
waitfor функция, управление "входит внутрь" и не делает проверок на таймаут, а реагирует он именно на них ...
т.е. это примерно тоже самое, что сделать sleep(xxx) и удивляться почему событие на terminate потока (то что от дельфевского класса) посланное до этой функции во время нее не проходит.
как то тут было обсуждение таймаута с моим участием и waitfor, хочеш поищи в дайджестах, если клиента используешь там должна быть возможность поиска по 2м вхождениям.
смысл, исполняемому коду надо дать "подышать", т.е. выполнять команды в которых проверка таймаута есть (select например).
переделай пример на длительный цикл в котором 2 команды, insert и waitfor на 1 сек (чтобы в суме таже минута получилась). результат должен быть другим (не помню я там что в том обсуждении делал... и сейчас не проверял, лень).
stas (2008-07-29 16:33:00) [5]Если так:
AdoConnection1.Execute('waitfor delay '+#39+'00:01:00'+#39+' select 1',I);
ShowMessage (IntToStr(I));
то работает, а иначе stas © (29.07.08 15:05) [13]
правильно?
Ega23 (2008-07-29 16:08:00) [6]
> Либо я вас не понял либо вы оба что-то путаете )
Пиши CommandText (TSQL):
waitfor delay '00:01:00'
select OK
Поставь CommandTimeout=90
Ну и запусти..
MsGuns (2008-07-29 15:24:00) [7]А внимательно хелп почитать влом конечно
stas (2008-07-29 15:16:00) [8]wsv , Ega23 ©
Либо я вас не понял либо вы оба что-то путаете )
Ega23 (2008-07-29 15:08:00) [9]Вроде это дело ещё на сервере решается...
Ega23 (2008-07-29 15:05:00) [10]
> Сначала не поверили?
Вообще-то когда-то несколько лет назад я это дело обходил.
Вот только сейчас мучительно пытаюсь вспомнить как.
stas (2008-07-29 15:05:00) [11]Так это все таки CommandTimeOut у AdoConnection, так он просто перекрывается свойством CommandTimeOut в ADOCommand
wsv (2008-07-29 15:01:00) [12]
> Это разные вещи
Да ну... :-D
wsv (2008-07-29 15:01:00) [13]
> Гм.. действительно не работает...
:-D
Сначала не поверили?
Ega23 (2008-07-29 14:59:00) [14]Гм.. действительно не работает...
Ну через TADOCommand тогда...
stas (2008-07-29 14:52:00) [15]wsv (29.07.08 14:21)
Это разные вещи CommandTimeOut и ConnectionTimeOut
ConnectionTimeOut - Это время ожидания подключения к серверу если через 30 сек сервер не откликнулся значит объект выведет ошибку подключения
CommandTimeOut - Это время ожидания выполнения запроса, если через 30 сек запрос невыполнился объект выводит ошибку.
Ega23 (2008-07-29 14:51:00) [16]
> А попробуйте,- первое и второе... Разницы не увидите...
Да ну???
Knight (2008-07-29 14:48:00) [17]А теперь тоже самое но для 1с...
Столкнулся на днях... хранимая процедура формирует ответ 50 сек... и 1с её не дожидаясь вываливает таймаут.
Пришлось уменьшить время работы процедуры до 1,5 сек :)))
Но вопрос завис и остался, мож кто знает?
wsv (2008-07-29 14:39:00) [18]ЗЫ http://www.delphikingdom.com/asp/answer.asp?IDAnswer=5586
wsv (2008-07-29 14:37:00) [19]
> что значит не рулит?
Не помогает.
> какая у вас проблема?
Таймаут ожидания соединения фиксирован где-то внутри коннекшена и составляет около 30 сек.
> Кажется, ты путаешь CommandTimeout и ConnectionTimeout
А попробуйте,- первое и второе... Разницы не увидите...
Ega23 (2008-07-29 14:32:00) [20]Кажется, ты путаешь CommandTimeout и ConnectionTimeout