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

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

Как можно вылечить такую ошибку: [D6, MSSQL]


Aleksandr ©   (2002-07-02 12:26:00) 

[Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt.

Замучался я с ней. Несколько потоков в программе обращаются к списку, который им возвращает экземпляры TQuery с запросами к разным таблицам. Периодически возникает вот такая ошибка. Все, что я понимаю, это то, что запрос не успевает выполниться... И все... :(


Aleksandr   (2002-07-02 15:30:00) [1]

Вычитал я тут про Sessions. Только не могу понять, сам он уничтожает открытые сессии или это ручками надо делать?


Delirium   (2002-07-02 15:00:00) [2]

Есть ещё один путь - порождать в потоках экземпляры TDataBase


Aleksandr   (2002-07-02 14:47:00) [3]

Мда... как все грустно... Я так въехал более-менее в то, что вроде как должен существовать один общий компонент TSession, который генерит уникальные имена сессий, только вот как автоматизировать процесс получения экземплярами разных TQuery эти имена... Что будет, если я сделаю
Query.SessionName:="Session_10" или
Query.SessionName:="Session_"+IntToStr(Random(500)+1)
а TSession такого имени истчо не имеет? Или она задает имена по требованию этих Query?


Delirium   (2002-07-02 14:21:00) [4]

Я давно уже не работаю с BDE, но насколько я понимаю, надо в каждом потоке создавать экземпляр TSession, задавать уникальное имя для сессии, и указывать это имя в TQuery.
А вот что говорит о твоей ошибке справочник ODBC Error Messages: "The SQL Server ODBC driver allows only one active hstmt."


Aleksandr   (2002-07-02 13:18:00) [5]

Да? Вот я никогда ими не пользовался... Объект-список возвращает все Query с одним общим свойством TDataBase. Куда можно запихнуть создание сессий?


Delirium   (2002-07-02 12:59:00) [6]

Хорошее лечение - разные сессии


Наверх

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