2012-03-17 13 views
4
... 
query.exec("insert into person values(104, 'Roberto', 'Robitaille')"); 
query.exec("insert into person values(105, 'Maria', 'Papadopoulos')"); 
... 

これらは単一のクエリでバインドできますかquery.exec()QtSql複数のクエリの実行

答えて

12

クエリをバッチで実行しようとしているようです。はい、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(); 

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

関連する問題