J'ai écrit un programme en Qt et j'ai récemment été confronté à ces 2 problèmes. Problème 1: J'ai une base de données sqlite avec 1 table et 4 colonnes (id, easy, medium, hard). Tous les ints. Donc, je veux vérifier si l'identifiant existe et est venu avec ce code:Qt (valeur sqlite et QVector <T> :: operator []: "index hors plage")
QSqlQuery queryCheck(db);
queryCheck.prepare("SELECT EXISTS(SELECT 1 FROM players WHERE id=':id' LIMIT 1)");
queryCheck.bindValue(":id", c.getId());
Mais quand je lance
if(queryCheck.exec())
Je suis toujours vrai.
Problème 2: J'ai créé et rempli de chiffres, un
QVector<QVector<int>> gridBoxUnsolved(9);
for(int outer=0; outer<gridBoxUnsolved.size(); ++outer)
gridBoxUnsolved[outer].resize(9);
et je veux changer au hasard quelques valeurs à 0. Je pensais à chaque QVector « intérieure » pour changer 1 valeur aléatoire 0. Alors je suis venu avec ce code:
int iRand;
qsrand(time(NULL));
for (int i=0;i<9;i++){
iRand = (qrand()%9)+1;
gridBoxUnsolved[i][iRand]=0;
}
Cependant, parfois fonctionne Qt très bien, mais la plupart du temps les accidents et retourner ceci: échec ASSERT dans QVector :: operator []: « index sur range ", fichier /opt/Qt/5.8/gcc_64/include/QtCor e/qvector.h, ligne 437 Le programme s'est terminé de façon inattendue.
Merci pour votre réponse. Mon deuxième problème que je vois était stupide. Mais avec le premier j'ai un différent type de problème maintenant. Je poste tout le code que j'essaie de réaliser: – CrystalScrew
if (queryCheck.exec() && queryCheck.first()) { qDebug() << "Base de données: Player Exist (SELECT Working)"; succès = vrai; } else if (queryCreate.exec()) { qDebug() << "Base de données: lecteur créé (INSERT Working)"; } else { qDebug() << "Base de données: Erreur lors de la vérification du lecteur:" << queryCheck.lastError(); qDebug() << "Base de données: Erreur lors de la création du lecteur:" << queryCreate.lastError(); } retour succès; } – CrystalScrew
donc s'il trouve mon gars comme vous l'avez dit je veux retourner 1, sinon je veux le créer avec une autre requête qui est correcte et qui fonctionne dans mon code, mais ça va toujours à autre élément unique (ce qui est correct, car mon identifiant est unique) – CrystalScrew