QtSql выполнение нескольких запросов
...
query.exec("insert into person values(104, 'Roberto', 'Robitaille')");
query.exec("insert into person values(105, 'Maria', 'Papadopoulos')");
...
Можно ли их связать в одном query.exec ()?
1 ответ
Решение
Я думаю, вы пытаетесь выполнить в пакете ваш запрос. Да, Qt поддерживает этот сценарий.
bool QSqlQuery::execBatch ( BatchExecutionMode mode = ValuesAsRows )
Выполняет предварительно подготовленный SQL-запрос в пакете. Все связанные параметры должны быть списками вариантов. Если база данных не поддерживает пакетное выполнение, драйвер имитирует ее с помощью обычных вызовов exec(). Возвращает true, если запрос выполнен успешно; в противном случае возвращает false.
QSqlQuery q;
q.prepare("insert into myTable values (?, ?)");
QVariantList ints;
ints << 1 << 2 << 3 << 4;
q.addBindValue(ints);
QVariantList names;
names << "Harald" << "Boris" << "Trond" << QVariant(QVariant::String);
q.addBindValue(names);
if (!q.execBatch())
qDebug() << q.lastError();