我正在用 Qt 编写程序,下面是我的代码的一部分:
for(int row=0; row < 15; row++)
{
for(int column=0; column < 12; column++ )
{
if(query->exec(db->getInsertQuery(row,column)))
{
}else
qDebug() << "Failed to insert cell";
}
}
当我运行这个程序时,它进入“无响应”状态。当我运行时
query->exec(db->getInsertQuery(0,0));
query->exec(db->getInsertQuery(0,1));
....
代替 for 循环程序运行正常,但我不能在我的程序中写这么多行。您能否建议我阻止 for 循环直到执行查询的方法以及如何在某些框中显示进度条直到 for 循环完成?
最佳答案
如果您正在使用 QtSql,我假设您应该使用 execBatch()
方法来完成此类任务
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();
关于c++ - 如何阻止 for 循环直到执行 sqlite 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216863/