Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
1-1131042442
Toxa_ua
2005-11-03 21:27
2005.12.04
Содержимое TEdit ???


14-1131808617
lookin
2005-11-12 18:16
2005.12.04
Раз уж не везет в хоккее, покажу фотографию...


5-1114449399
FunkyByte
2005-04-25 21:16
2005.12.04
Как отключить модуль от пакета?


14-1131950684
DelphiN!
2005-11-14 09:44
2005.12.04
Компонент для записи изображения с Web камеры


2-1132304755
cherman
2005-11-18 12:05
2005.12.04
qReport




   Наверх