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

Вниз

Работа с БД в потоках   Найти похожие ветки 

 
altarasjuk ©   (2003-03-02 13:05) [0]

Доброго времени суток.
Есть TADOConnection. Есть 2 TADOQuery в разных потоках .Connection:= TADOConnection. и выполняется примерно такой код:

Поток1:

var
query1: TADOQuery;
begin
query1:= TADOQuery.Create(nil);
query1.Connection:= Bconnection; {Bconnection: TADOConnection}
query1.SQL.Add("Select * from ....");
query1.Active:= TRUE;
..............


Поток2:

var
query2: TADOQuery;
begin
query2:= TADOQuery.Create(nil);
query2.Connection:= Bconnection; {Bconnection: TADOConnection}
query2.SQL.Add("Select * from ....");
query2.Active:= TRUE;
..............

если выполняется тока один квери то всё ок, а если выполняются 2 одновременно, то получаю набор от Access Voilation до Invalid Pointer Operation, а бывает что асмовское окно (курсор на Push ...) и там валиться и отловить это фиг получается.
Может кто объяснит чё это твориться...
Зараннее благодарен.


 
Владислав ©   (2003-03-02 13:19) [1]

Так вроде в разных потоках Connection разные должны быть.


 
sniknik ©   (2003-03-02 13:21) [2]

добавь к каждому потоку Connection1:= TConnection.Create(nil); и т.д. (связь).

если у тебя не так, и компенент гденибудь на форме, то он работает в главном потоке программы при доступе из других возникают колизии (глюки), нужна синхронизация. Но в длительных запросах синхранизация будет вешать основной, и смысл в доп.потоках нулевой.

+
в начале выполнения процедуры потока делай CoInitialize(nil); в конце CoUnInitialize();



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

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

Наверх




Память: 0.47 MB
Время: 0.03 c
3-64023
Melbis
2003-03-01 16:01
2003.03.20
Как программно выделить строку в DBGrid


4-64443
KoHe4Ho }|{e 6ot
2003-01-25 19:51
2003.03.20
Работа с памятью


14-64326
Ketmar
2003-03-04 16:53
2003.03.20
господа, как корректно сменить shell в win2k?


3-64050
Roki
2003-03-03 11:41
2003.03.20
Как увидеть подконектившхся юзверей?


3-64027
RIV_
2003-02-22 06:01
2003.03.20
Проблема при создании lookUp поля