Si je fais ceci:QSqlTableModel résultat vide
QSqlQuery searchQuery(QString("select * from people where id = %1").arg(1));
if (searchQuery.next())
{
std::cout << "Name: " << searchQuery.value(1).toString().toStdString() << std::endl;
}
La sortie est (comme prévu):
Name: David
Cependant, si je fais ceci:
QSqlTableModel *model = new QSqlTableModel;
// Set used table
model->setTable("people");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
// Set where clause
model->setFilter(QString("id=%1").arg(1));
model->select();
// Read result
QSqlRecord record = model->record();
if (!record.isEmpty())
{
std::cout << "Name from model: " << record.value(1).toString().toStdString();
}
L'enregistrement est non vide, mais la sortie est vide:
Name from model:
Quelqu'un peut-il voir ce que j'ai mal fait en utilisant le QSqlTableModel? De plus, avec les deux méthodes, je ne comprends pas comment vous n'avez pas besoin de dire quelle base de données utiliser (c'est-à-dire que j'instancie une QSqlDatabase et .open(), mais je ne dis jamais à la requête de fonctionner la base de données?)
Merci,
David
Génial, merci beaucoup! –