Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многопоточность в IB. [D6, IB6.x]


Ш-К ©   (2002-08-09 14:26:00) 

У меня все нити привязаны к одному соединению с БД. Соответственно и запросы получаются последовательными.
Как сделать так, чтоб запросы вополнялись параллельно.


Alexandr   (2002-08-12 08:34:00) [1]

блин, я хренею - хотите параллельности - создавайте новое подключение в каждом потоке.


Ш-К   (2002-08-09 18:15:00) [2]

Это не сообщение.
Это написано в Firebird Project - Open Feature Requests :
1416 446227 Implement ThreadSafe code/operation.

Полагаю, что для IB тоже.


Ura   (2002-08-09 17:48:00) [3]

Поясни. Где вывалилось сообщение?


Ш-К   (2002-08-09 17:44:00) [4]

Client library: GDS32
Implement ThreadSafe operation
The client library is not fully threadsafe. Currently each thread must
create its" own connection to the database.

И как, после таких слов, цеплять всё на одно соединение?


Ura   (2002-08-09 17:08:00) [5]

Идея. Создавай в каждом потоке транзакцию + запрос
Потом цепляй это все к 1-му соединению с базой и запускайся.

Посмотри.
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1028897453&n=1


Ш-К   (2002-08-09 17:01:00) [6]

У меня два потока. Я хочу, чтобы когда "выполняется" запрос в первом потоке, во втором потоке постоянно могли бы отсылаться другие запросы и приниматься их результаты.
Что для этого делать?


Johnmen   (2002-08-09 16:11:00) [7]

Одно соединение - один поток запросов, последовательно выполняемых сервером...


SaS13   (2002-08-09 16:05:00) [8]

для каждого потока свой IBQuery1 должен быть, иначе они опять будут выполняться в программе последовательно, у меня так обновление данных организовано, правда на MSSQL, но работает, если хотишь могу модуль мылом выслать


Ш-К   (2002-08-09 15:58:00) [9]

И что, на все потоки достаточно иметь общий IBQuery1, общую IBDatabase1 и общую IBTransaction1?

Допустив у меня два потока. из одного я делаю длительный запрос (через IBQuery1, и минут на 20). В другом потоке (через тот же IBQuery1) провожу постоянную перетасовку данных. Всё ли будет работать корректно?

PS. Я просто опасаюсь примерять - в стерильных условиях оно может и заработает, а начну усложнять, прийдёт кирдык. И всё потому, что в начале не учёл очевидных вещей.


SaS13   (2002-08-09 14:32:00) [10]

создаешь потоки и в них выполняешь запросы (сабж) =))


Наверх

Титульная страница Поиск, карта сайта Написать письмо