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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: MySQL и QSqlQuery::execBatch  (Прочитано 3439 раз)
Yegor
Гость
« : Октябрь 07, 2016, 16:34 »

Всем здравствуйте!

Использую MySQL и Qt5.6.

Нужно большое количество данных вставить в таблицу, чтобы была экономия времени и ресурсов. Смотрел в Assistant про QSqlQuery. Там для таких целей есть QSqlQuery::execBatch - который одним единственным запросом вставляет большой объем данных. Но вот только в Assistante пишут, что
Цитировать
If the database doesn't support batch executions, the driver will simulate it using conventional exec() calls.
Что означает, что не со всеми базами данных такое возможно. Если не возможно, то пакет данных разбивается на множество мелких и для каждого отдельно делается QSqlQuery::exec - что делает всю затею бесполезной.

Вопрос, а поддерживает ли MySQL такую функцию?

Спасибо!
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Октябрь 07, 2016, 17:25 »

bool QSqlDriver::hasFeature(DriverFeature feature) const
QSqlDriver::BatchOperations

а вообще в исходниках (src\qtbase\src\sql\drivers\mysql\qsql_mysql.cpp):
Код
C++ (Qt)
...
   case BatchOperations:
   case SimpleLocking:
   case EventNotifications:
   case FinishQuery:
   case CancelQuery:
       return false;
...
 
Записан
Yegor
Гость
« Ответ #2 : Октябрь 07, 2016, 19:45 »

Спасибо большое, Johnik!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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