【发布时间】:2019-01-07 08:32:04
【问题描述】:
我想从 sqlite 数据库中获取数据,我使用此代码它仅适用于小行,但是当尝试像 300000 这样的大数据时它不起作用 代码:
QString serVal = "searchItem";
QSqlQuery qry;
qry.exec("select * from myTable");
while (qry.next()) {
if(serVal == qry.value("myCol1").toString())
{
qDebug () << qry.value("myCol2").toString();
qDebug () << qry.value("myCol5").toString();
qDebug () << qry.value("myCol8").toString();
break;
}
}
【问题讨论】:
-
“它不起作用”不是有用的错误描述。如果您期望如此大的查询结果,您也应该使用 select ... from ... limit NNNN。
-
问题是程序停止加载并退出,但是如果用于小数据它可以正常加载,请您解释一下select ... from ...限制NNNN如何使用它。
-
qry.exec("select * from myTable where serVal = 'searchItem' ");可能是一个更好的查询。它会减少匹配的记录。
-
还可以在执行查询之前尝试添加
qry.setForwardOnly(true);。可能是make a difference. -
@TrebuchetMS 感谢它的工作