QtSql多次查询执行

Dew*_*rld 5 qt qt4 qtsql

 ...
 query.exec("insert into person values(104, 'Roberto', 'Robitaille')");
 query.exec("insert into person values(105, 'Maria', 'Papadopoulos')");
 ...
Run Code Online (Sandbox Code Playgroud)

这些可以绑定在一个query.exec()中吗?

Dav*_*ita 12

我猜你试图批量执行你的查询.是的,qt支持这种情况.

bool QSqlQuery::execBatch ( BatchExecutionMode mode = ValuesAsRows )
Run Code Online (Sandbox Code Playgroud)

批量执行先前准备的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();
Run Code Online (Sandbox Code Playgroud)

http://doc.qt.io/archives/qt-4.7/qsqlquery.html#execBatch