Russian Qt Forum

Qt => Базы данных => Тема начата: nikolay от Июль 18, 2016, 12:49



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

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

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




Название: Re: Sql и Thread
Отправлено: Old от Июль 18, 2016, 12:57
Как ответы идентифицировать? Что это именно ответ от 1 или 2 или 3-го запроса. И вообще правильно работать с БД в отдельном потоке? Может по другому построить архитектуру?
Для каждого потока создавайте свое подключение к БД.
Ничего путаться не будет.


Название: Re: Sql и Thread
Отправлено: nikolay от Июль 18, 2016, 13:08
А правильно ли это, что от одного пользователя будет, например, 10 подключений (от 10 запросов соответственно)? И ещё, на мой взгляд, каждый раз устанавливать новое соединение с БД, на это будет уходить время.


Название: Re: Sql и Thread
Отправлено: Old от Июль 18, 2016, 13:30
А правильно ли это, что от одного пользователя будет, например, 10 подключений (от 10 запросов соответственно)?
А почему нет? :)

И ещё, на мой взгляд, каждый раз устанавливать новое соединение с БД, на это будет уходить время.
Конечно, нужно один раз их создать вместе с потоками.


Название: Re: Sql и Thread
Отправлено: rudireg от Октябрь 31, 2016, 19:08
А если поток один и он пуляет запросы в другой поток, который работает с БД
Тогда как идентифицировать?

Хотя если пуляется в 3 разных БД
то следует сделать для каждого БД отдельное подключение