![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL server+ ADO + Multithreading [D6, Access]
Tom © (2005-10-21 17:16:00)Итак...программа представляет из себя Сервера который связывается с клиентами на мною написанном протоколе,Сервер многопоточный - то ест на каждого клиента открывает свой поток.В каждом потоке сервер соединятся с базой - ранше это была MSAccess а теперь SQLserver , с Access сушествовало одно Connection,постоянно открытый, и Append происходил в CriticalSection,пытаясь сделать тоже с SQLserver - с одним клиентом все было ок,при двух начал кричать "Connection уже открыт!"
После следуюшего "исправления" : открываю и закрываю Connection до и после работы с базой стало даже с одним клиентом выдавать "this opperation cant be maked asynchronously" ....одним словом : "как работать правилно с ADO + SQLserver + multithreading "????
Tom (2005-10-21 18:33:00) [1]Спасибо!!! сделаю как сказали а завтра сообшю результат!
isasa (2005-10-21 18:27:00) [2]1. isasa © (21.10.05 17:58) [5]
2. Baltika-15 (21.10.05 18:03) [7]
Один поток - одно подключение TADOConnection.
И вынеси нафиг ADOConnection из модуля Data. Объяви все компоненты, по работе с базой локально, в рамках потока. Там их создавай, откравай, закрывай.
А код у тебя есть, свой. Раз с одним работает. :)
Tom (2005-10-21 18:19:00) [3]>>Baltika-15
>>Один поток - одно подключение TADOConnection.
Может знаете где можно найти кусочек кода? :) Заранее спасибо!!!
clickmaker (2005-10-21 18:03:00) [4]
> Tom (21.10.05 17:49) [4]
> Работаю с ADO,и с ним тоже нужны Sessions?
любой коннект к БД - это сессия. И движок тут не причем
Baltika-15 (2005-10-21 18:03:00) [5]
> Tom (21.10.05 17:49) [4]
>
> Работаю с ADO,и с ним тоже нужны Sessions?
Один поток - одно подключение TADOConnection.
> isasa © (21.10.05 17:58) [5]
>
> Вариант
>
> ....
> CoInitFlags:=COINIT_MULTITHREADED;
> Application.Initialize;
Мне кажется, что вряд ли это поможет. ADOConnection запросы выполняет последовательно.
isasa (2005-10-21 17:58:00) [6]Вариант
....
CoInitFlags:=COINIT_MULTITHREADED;
Application.Initialize;
...
Tom (2005-10-21 17:49:00) [7]Работаю с ADO,и с ним тоже нужны Sessions?
Baltika-15 (2005-10-21 17:46:00) [8]
> Tom (21.10.05 17:41) [2]
>
> А где об этом можно почитать?
В Hеlp, конечно.
Затем статьи на разных сайтах(яндекс поможет однозначно - ключевое слово TThread)
Tom (2005-10-21 17:41:00) [9]А где об этом можно почитать?
clickmaker (2005-10-21 17:38:00) [10]на каждый поток открывать свою сессию