Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Проблема такая. Через BDE хранимые процедуры, которые работают по 10-15 минут вызываются нормально. Через ADO-компоненты они через несколько минут вылетают по таймауту. Причём все мои попытки найти параметр, влияющий на это, не увенчались успехом. Вто что я нашёл : 1) Свойство CommandTimeout у компонента ADOConnect 2) Аналогичное свойство у компонента AdoCommand 3) У компонента AdoStoredProc такого свойства вообще нет. Вобщем, те свойства, которые я нашёл, увеличивал до 2000 секунд и больше - без толку. Всё равно минут через пять- семь вылетает по таймауту и всё. Кто знает, в каких недрах зарыт нужный параметр ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2002, 20:06 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Возможно поможет настройка самого SQL Server-a В MS SQL 2000 есть такая настройка Query-timeout по умолчанию она 600 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 07:48 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Если через BDE работало, то скорее всего SQL не причем. В Delphi help DevGuide: Developing database applications найдено: Управления timeouts. Два типа :ConnectionTimeout - TADOConnection для выставления времени ожидания подключения и CommandTimeOut - для выставления времени в секундах выполнения TADOConnection.Execute Все остальное (TADOCommand, TADOQuery,TAdoStoredProc и т.д.) имеют только CommandTimeOut (не считая ссылки на Connection) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 08:41 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
В компоненте TADOConnection параметр CommandTimeout не работает. На форуме об этом уже писАли не раз, и пришли к выводу, что компонент глючит. То же самое и у TADOStoredРroc и TADOQuery. Что бы обойти проблему надо использовать TADODataSet. У него CommandTimeout работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 15:46 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Похоже что у TADOConnection свойство CommandTimeout всё-таки работает. Я проверил, отрубается равно через CommandTimeout секунд. Моя проблема решена с помощью двух операторов : ADOConnection.CommandTimeout := 1200 ADOConnection.Execute('execute MyProc'); Но мне всё равно непонятно, почему хранимые процедуры (не возвращающие набор данных), которые через MS Query Analyzer и BDE выполняются менее чем за 10 минут, через ADOConnection выполняются более чем за 40 минут. Откуда такой тормоз ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 17:44 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Перечислите, пжалста, весь список ваших значений свойств ADOConnection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 11:23 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
Вот как выглядит мой AdoConnection в DFM-файле : object ADOConnect: TADOConnection CommandTimeout = 2400 ConnectionTimeout = 180 CursorLocation = clUseServer LoginPrompt = False Provider = 'SQLOLEDB.1' Left = 56 Top = 32 end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 19:43 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
А вот серверный курсор напрасненько используется. Вполне может быть, что это из-за него глючит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2002, 09:34 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
у TADOQuery, TADOStoredProcedure и TADOTable это свойство не опубликовано. Там используется значение по умолчанию 30 сек. Посему нужно использовать TADODataSet и TADOCommand. Они обеспечивают всю необходимую функциональность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 19:15 |
|
||
|
Проблема с timeout при работе через ADO-компоненты с MS SQL
|
|||
|---|---|---|---|
|
#18+
TADOQuery потомок TCustomADODataSet у которого есть свойство CommandTimeout (но оно скрытое). У TADOConnection тоже есть свойство CommandTimeout, но на TADOQuery оно не влияет. Чтобы избавиться от "Timeout expired" я сделал так: 1. Описал класс, в котором опубликовал свойство CommandTimeout TMyADODataSet = class(TCustomADODataSet) public property CommandTimeout; end; 2. Присвоил новое значение свойству CommandTimeout компанентов TADOQuery (по умолчанию оно равно 30) TMyADODataSet (ADOQuery1).CommandTimeout := 60; 3. Вот собственно и все (ну можно еще заняться оптимизацией запросов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 09:33 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32064796&tid=2119650]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 411ms |

| 0 / 0 |
