Problème avec une requette QSQlite
Fermé
Mourad2009B
Messages postés
114
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
19 janvier 2023
-
4 févr. 2014 à 12:22
Mourad2009B Messages postés 114 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 19 janvier 2023 - 7 févr. 2014 à 14:57
Mourad2009B Messages postés 114 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 19 janvier 2023 - 7 févr. 2014 à 14:57
A voir également:
- Problème avec une requette QSQlite
- Requette http - Guide
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. ✓ - Forum Facebook
- Une session php a été créée par un appel de fonction session_start(). cela interfère avec l’api rest et les requêtes de boucle (loopback). la session devrait être fermée par session_write_close() avant d’effectuer toute requête http. ✓ - Forum PHP
- Envoyer une requête http en ligne de commande ✓ - Forum Shell
- Échec de la requête en raison d'une grave erreur matérielle - Forum Disque dur / SSD / Clé USB
2 réponses
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
48
6 févr. 2014 à 00:23
6 févr. 2014 à 00:23
Bonsoir, franchement je n'ai pas toute lue ton code, essayer de les postés dans des balises correctes qui sont mises à ta disposition
Mourad2009B
Messages postés
114
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
19 janvier 2023
7 févr. 2014 à 14:57
7 févr. 2014 à 14:57
Bonjour à tous, merci pour vos réponse. voila mon problème. et désolé pour le retard j'ai pas internet à la maison.
Voila j'ai un gros problème au quel je ne trouve pas de solution, depuis 2 jours, et je peux vous garantir que j'ai tout essayé.
Je travaille Avec Qt et C++, sous l'IDE QTCreator.
j'utilise QSQLite comme moteur de base de données,
j'ai une table Client qui contient les champs suivants
une table Facture qui contient les champs suivants
une table composant qui contient les champs suivants
une table produit_avec_reference qui contient les champs suivants
et quand je fait une requette de ce genre
QSqlQuery query (db) ; //Ma base de données est déclarée avant, et il n' y a aucun problème avec ça.
On se qui concerne la table client et la table facture il n' y a aucun problème vu que un seul client corespond à une seule facture, par contre comme il y a 3 composants de la table composant qui appartiennent à la facture 1 (1000001) et comme il y a 3 produits de la table produit_avec_reference qui appartiennent à la facture 1 (1000001) aussi.
Alors quand je lance ma requette
Et là je me retrouve avec 9 valeurs au lieu de 3 comme j'en ai que trois composants
et de même pour :
QList malisteDesproduits ;
Pour recupérer que les produit avec référence pour les mettre dans une liste
Je n'arrive pas à comprendre pourquoi
Merci d'avance pour votre aide
Voila j'ai un gros problème au quel je ne trouve pas de solution, depuis 2 jours, et je peux vous garantir que j'ai tout essayé.
Je travaille Avec Qt et C++, sous l'IDE QTCreator.
j'utilise QSQLite comme moteur de base de données,
j'ai une table Client qui contient les champs suivants
id nom prenom adresse 1 nom1 prenom1 adresse1 2 nom2 prenom2 adresse2 3 nom3 prenom3 adresse3 4 nom4 prenom4 adresse4
une table Facture qui contient les champs suivants
id id_client date numero_facture 1 1 11/12/2013 1000001 2 2 12/12/2013 1000002 3 3 13/12/2013 1000003 4 4 14/12/2013 1000004
une table composant qui contient les champs suivants
id designation_composant prix numero_facture 1 composant 1 154 1000001 2 composant 2 254 1000001 3 composant 3 541 1000001 4 composant 4 658 1000004
une table produit_avec_reference qui contient les champs suivants
id designation_produit prix numero_facture 1 produit 1 154 1000001 2 produit 2 254 1000001 3 produit 3 541 1000001 4 produit 4 658 1000004
et quand je fait une requette de ce genre
QString requetteDeSelection = QString("SELECT * FROM Facture LEFT JOIN Client ON Facture.numero_facture = Client.numero_facture LEFT JOIN composant ON Facture.numero_facture = composant.numero_facture LEFT JOIN produit_avec_reference ON Facture.numero_facture = produit_avec_reference.numero_facture")
QSqlQuery query (db) ; //Ma base de données est déclarée avant, et il n' y a aucun problème avec ça.
On se qui concerne la table client et la table facture il n' y a aucun problème vu que un seul client corespond à une seule facture, par contre comme il y a 3 composants de la table composant qui appartiennent à la facture 1 (1000001) et comme il y a 3 produits de la table produit_avec_reference qui appartiennent à la facture 1 (1000001) aussi.
Alors quand je lance ma requette
if(!query.exec(requetteDeSelectionTotal))
{
QMessageBox::warning(this, stringAttention,QString(tr("La requette de seléction n'a pas été éxécutée") + query.lastError().text()));
return;
}
QList malisteDesComposants ;
Pour recupérer que les composant pour les mettre dans une liste
While(query.next())
{
malisteDesComposants.append(query.value(9).toString())
}
Et là je me retrouve avec 9 valeurs au lieu de 3 comme j'en ai que trois composants
et de même pour :
QList malisteDesproduits ;
Pour recupérer que les produit avec référence pour les mettre dans une liste
While(query.next())
{
malisteDesComposants.append(query.value(13).toString())
}
Je n'arrive pas à comprendre pourquoi
Merci d'avance pour votre aide