Bonjour,
J'utilise une BDD SQLite dans mon programme en Qt. J'arrive à faire les opérations basiques que je veux (INSERT INTO, SELECT x FROM...). En revanche, je bute sur pour récupérer le résultat d'une requête SELECT COUNT. Voici le code récalcitrant:
La console de debug me rend ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 QString maRequete = "SELECT COUNT (*) FROM collection2"; QSqlQuery query; // Execution de la requete if(!query.exec(maRequete)) { // Generation d'une erreur QSqlError err = query.lastError(); QMessageBox::critical(0, "Erreur sur albums", err.text()); } int nbrDisques = query.value(0).toInt(); qDebug() << "Nombre d'elements dans la base : " << QString::number(nbrDisques);
J'ai essayé d'appliquer les méthodes size() et isSelect() à ma requete query. size() rend -1, ce qui d'après la doc est toujours le cas pour une requete non SELECT ; par contre isSelect() me rend true... C'est contradictoire à mon avis...QSqlQuery::value: not positioned on a valid record
Nombre d'elements dans la base : "0"
La requete SQL tester dans un autre logiciel (le truc de base fourni par SQLite pour faire des requetes SQL sur une base), elle fonctionne très bien. C'est cohérent avec le fait que le QMessageBox ne s'ouvre pas.
Si quelqu'un a une idée sur la question.... Je le remercie d'avance de communiquer cette idée
Partager