Russian Qt Forum
Апрель 19, 2024, 01:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Sql и Thread  (Прочитано 4688 раз)
nikolay
Гость
« : Июль 18, 2016, 12:49 »

Есть приложение, задача которого вывод из базы данных кучи данных. Есть идея запихнуть выполнения запросов в отдельный thread. Теперь вопрос, как с ним работать? Отправлять запросы на запрос, но как результат получать?
Пример:
Запрос к БД №1;
Запрос к БД №2;
Запрос к БД №3.

Затем повалятся ответы, причём в хаотичном порядке...
Ответ из БД №2
Ответ из БД №3
Ответ из БД №1

Как ответы идентифицировать? Что это именно ответ от 1 или 2 или 3-го запроса. И вообще правильно работать с БД в отдельном потоке? Может по другому построить архитектуру?
Заранее спасибо за ответы!


Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Июль 18, 2016, 12:57 »

Как ответы идентифицировать? Что это именно ответ от 1 или 2 или 3-го запроса. И вообще правильно работать с БД в отдельном потоке? Может по другому построить архитектуру?
Для каждого потока создавайте свое подключение к БД.
Ничего путаться не будет.
Записан
nikolay
Гость
« Ответ #2 : Июль 18, 2016, 13:08 »

А правильно ли это, что от одного пользователя будет, например, 10 подключений (от 10 запросов соответственно)? И ещё, на мой взгляд, каждый раз устанавливать новое соединение с БД, на это будет уходить время.
« Последнее редактирование: Июль 18, 2016, 13:13 от nikolay » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Июль 18, 2016, 13:30 »

А правильно ли это, что от одного пользователя будет, например, 10 подключений (от 10 запросов соответственно)?
А почему нет? Улыбающийся

И ещё, на мой взгляд, каждый раз устанавливать новое соединение с БД, на это будет уходить время.
Конечно, нужно один раз их создать вместе с потоками.
Записан
rudireg
Гость
« Ответ #4 : Октябрь 31, 2016, 19:08 »

А если поток один и он пуляет запросы в другой поток, который работает с БД
Тогда как идентифицировать?

Хотя если пуляется в 3 разных БД
то следует сделать для каждого БД отдельное подключение
« Последнее редактирование: Октябрь 31, 2016, 19:10 от rudireg » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.