![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопоточность в 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]создаешь потоки и в них выполняешь запросы (сабж) =))