![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно вылечить такую ошибку: [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]Хорошее лечение - разные сессии