我Sqlite
在 Qt 中学习,但在访问由QSqlQuery
.
详细信息如下,但要点是:我QSqlRecord
从查询中得到回复,并希望访问记录的所有字段,QSqlRecord.count
但当显然有两列时只报告一列(在示例中它们是id和关键字)。
我是否误解了 SQLite 以及查询的作用,还是我尝试访问记录的方式有问题?
这是我的架构:
这是我的测试数据:
完整代码:
void MainWindow::on_addKeywordBtn_clicked()
{
// find a matching keyword
QSqlQuery query(db);
query.prepare("SELECT keyword FROM keywords WHERE keyword = ?");
query.addBindValue(QString("blue"));
query.exec();
while (query.next()) {
QString k = query.value(0).toString();
qDebug() << "found" << k;
QSqlRecord rec = query.record();
qDebug() << "Number of columns: " << rec.count();
int idIndex = rec.indexOf("id");
int keywordIndex = rec.indexOf("keyword");
qDebug() << query.value(idIndex).toString() << query.value(keywordIndex).toString();
}
}
控制台输出:
found "blue"
Number of columns: 1
QSqlQuery::value: not positioned on a valid record
"" "blue"