Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

SQL server+ ADO + Multithreading   Найти похожие ветки 

 
Tom   (2005-10-21 17:16) [0]

Итак...программа представляет из себя Сервера который связывается с клиентами на мною написанном протоколе,Сервер многопоточный - то ест на каждого клиента открывает свой поток.В каждом потоке сервер соединятся с базой - ранше это была MSAccess а теперь SQLserver , с Access сушествовало одно Connection,постоянно открытый, и Append происходил в CriticalSection,пытаясь сделать тоже с SQLserver - с одним клиентом все было ок,при двух начал кричать "Connection уже открыт!"
После следуюшего "исправления" : открываю и закрываю Connection до и после работы с базой стало даже с одним клиентом выдавать "this opperation cant be maked asynchronously" ....одним словом : "как работать правилно с ADO + SQLserver + multithreading "????


 
clickmaker ©   (2005-10-21 17:38) [1]

на каждый поток открывать свою сессию


 
Tom   (2005-10-21 17:41) [2]

А где об этом можно почитать?


 
Baltika-15   (2005-10-21 17:46) [3]


> Tom   (21.10.05 17:41) [2]
>
> А где об этом можно почитать?


В Hеlp, конечно.
Затем статьи на разных сайтах(яндекс поможет однозначно - ключевое слово TThread)


 
Tom   (2005-10-21 17:49) [4]

Работаю с ADO,и с ним тоже нужны Sessions?


 
isasa ©   (2005-10-21 17:58) [5]

Вариант

....
CoInitFlags:=COINIT_MULTITHREADED;
Application.Initialize;
...


 
clickmaker ©   (2005-10-21 18:03) [6]


> Tom   (21.10.05 17:49) [4]
> Работаю с ADO,и с ним тоже нужны Sessions?

любой коннект к БД - это сессия. И движок тут не причем


 
Baltika-15   (2005-10-21 18:03) [7]


> Tom   (21.10.05 17:49) [4]
>
> Работаю с ADO,и с ним тоже нужны Sessions?


Один поток - одно подключение TADOConnection.

> isasa ©   (21.10.05 17:58) [5]
>
> Вариант
>
> ....
> CoInitFlags:=COINIT_MULTITHREADED;
> Application.Initialize;


Мне кажется, что вряд ли это поможет. ADOConnection запросы выполняет последовательно.


 
Tom   (2005-10-21 18:19) [8]

>>Baltika-15
>>Один поток - одно подключение TADOConnection.

Может знаете где можно найти кусочек кода? :) Заранее спасибо!!!


 
isasa ©   (2005-10-21 18:27) [9]

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:33) [10]

Спасибо!!! сделаю как сказали а завтра сообшю результат!



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1132216536
Катерина
2005-11-17 11:35
2005.12.04
Работа с Сanvas


14-1131903600
makvell
2005-11-13 20:40
2005.12.04
Мастерам


3-1129878933
BerkeleyMan
2005-10-21 11:15
2005.12.04
TClientDataset


3-1129931462
Stav-Sergio
2005-10-22 01:51
2005.12.04
Внесение учетной записи пользователя в InterBase


2-1131870012
leeroy
2005-11-13 11:20
2005.12.04
help...