2012-03-17 87 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