Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO и потоки: таймаут при выполнении запроса. [D6, MSSQL]


Johnmen ©   (2005-11-25 11:06:00) 

Всем привет!

Имеется: АДО коннекшн в главном потоке, открыто; в дополнительном потоке (в Execute) создаётся ещё одно соединение и ADOQuery в рамках этого соединения. В доп.потоке выполняется коннект и запрос. Там же (в Execute) доп.соединение закрывается и разрушается.
В процедуре, кот. выполняется по OnTerminate, делается попытка выполнить запрос в рамках главного соединения.
Явление: указанный запрос не выполняется (Timeout expired).

Вопрос: Где я неправ и что делать?
Спасибо.


Johnmen   (2005-11-25 12:51:00) [1]

>Nikolay M. ©   (25.11.05 12:13) [4]
>sniknik ©   (25.11.05 12:28) [5]

Спасибо за поддержу!
На второй день плотных разборок, дебагга и экспериментов много прояснилось.
А самое главное - поставил МДАК 2.8 и проблема исчезла!!!
Теперь всё нормально!


sniknik   (2005-11-25 12:28:00) [2]

> Всё скажу словами. :)
не получится.
если секретно, сделай пример с указанным глюком.
вообще описанная схема рабочая, если не считать что я не использую ADOQuery, а использую ADODataSet, и считать все написанное буквально т.е. к примеру что в OnTerminate идет запрос к главному как написано а не к потоковому ошибочно. и т.д


Nikolay M.   (2005-11-25 12:13:00) [3]

А непосредственно до старта запроса, конекшен в главном потоке открыт? Таймаут у него равен тому же значению, что и до старта потока?


Johnmen   (2005-11-25 12:10:00) [4]

>sniknik ©   (25.11.05 11:37) [1]
>код?

Всё скажу словами. :)

>Nikolay M. ©   (25.11.05 11:53) [2]

Да, этот запрос много раз вып-ся, нормально (до старта потока. А после, когда таймаут, всё уже падает...:)).


Nikolay M.   (2005-11-25 11:53:00) [5]


> В процедуре, кот. выполняется по OnTerminate, делается попытка
> выполнить запрос в рамках главного соединения.
> Явление: указанный запрос не выполняется (Timeout expired).

А тот же запрос, но по нажатию кнопки на форме, выполняется нормально? Может все-таки таймаут увеличить?


sniknik   (2005-11-25 11:37:00) [6]

код?


Наверх

Титульная страница Поиск, карта сайта Написать письмо