IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

sql + recordcount bug ?


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut sql + recordcount bug ?
    Re bonsoir.

    j'ai un petit soucis plutot etrange...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SQLQuery1->Active=false;
    SQLQuery1->SQL->Clear();
    AnsiString sql("SELECT * FROM historique");
    SQLQuery1->SQL->Add(sql);
    int Resultat= SQLQuery1->RecordCount;
    SQLQuery1->Open();
    ShowMessage(Resultat);
     
     
    		if (Resultat > 0)  // Si Resultat est > 0 alors c'est quil y a au moins une reference
    		{
     
    		SQLQuery1->Active=false;
    		SQLQuery1->SQL->Clear();
    		AnsiString sql("SELECT RefProduit,Marque,Model,COUNT(Quantite) AS qte FROM historique GROUP BY RefProduit ORDER BY qte DESC");
    		SQLQuery1->SQL->Add(sql);
    		SQLQuery1->Open();
    		int check = SQLQuery1->RecordCount;
    		ShowMessage(check);
     
     
    		for (int i = 0; i < check; i++)
                              {etc//
    		{
    Resultat = 20 c'est la bonne reponse : j'ai bien 20 lines dans ma table
    Check = 20 hors je n'en ai plus que 15 dans ma table ( tester dans easyphp ) et je ne sais par quel hasard il me considere tj 20 ce qui me pose un probleme dans ma boucle d'apres.

    si quelqu'un a deja eu ce genre de probleme

    merci

  2. #2
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Il faut toujours se méfier de la propriété RecordCount car en fonction du moteur de basse de donnée, il se peut qu'il y ait l'optimisation qui consiste à ne "fectcher" que ce qui est nécessaire (souvent ce qui est visible).
    Il vaut mieux utiliser une boucle while et la méthode Next() en testant qu'on ne soit bien pas à la fin (EOF).

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    et en ajoutant SQLQuery1->Close(); avant l'exécution de tes requêtes ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    non cela ne change rien avec les Close();

    Je vois ce que tu veux faire neilbgr mais de la a mettre en pratique

    Sinon je comprends pas pourquoi ca ne marche pas.. mais recordcount on toujours bien fonctionné jusqua present

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    salut

    avant de faire ton RecordCount, exécute cette ligne:

    Ca devrait mieu fonctionner après, enfin j'espère...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    Apparement ta commande n'existe pas
    j'ai essayer :
    SQLQuery1->FetchAll et SQLQuery->SQL->FetchAll(); mais ca n'existe pas

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut bullrot
    Query->FetchAll(); c'est pour BDE
    est ce que tu ne devrais pas faire un SQLQuery1->Refresh();puis ton teste

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    j'ai essayer mais sans succes

    arf ca m'enerve ce truc :p

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai lu que certaines tables demandent d'etre positionnees sur le dernier enregistrement par " SQLQuery1->Last(); "

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    oui mais ici je veux recuperer le nombre d'enregistrement pour pouvoir faire ma boucle apres

  11. #11
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour,

    Je n'ai pas la table sous la main, donc je me permetterais pas d'être affirmatif mais ca devrais pouvoir se régler avec le SQL.

    C'est quoi comme BDD ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    mysql ( easyphp )

  13. #13
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Citation Envoyé par bullrot Voir le message
    mysql ( easyphp )
    Connais po ... ( ca existe ? mince, on est pas sur la taverne ...)

    Au risque de dire une bêtise (mais le ridicule ne tue pas), je dirais ... essaies un:
    dans ta requête.

    En tout cas, j'essaierais de tourner autour de ca.

    @+

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    j'ai contourner le probleme , j'ai fait un deuxieme query et un distinct et ca marche

  15. #15
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    'dommage' malgré tout, je suis sur que ca devrais passer dans une seule requete ... bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] requete SQL qui bug
    Par thebarbarius dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 05/10/2012, 16h49
  2. Excel SQL : RecordCount = -1 pourquoi?
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/11/2009, 16h07
  3. SQL d'ajout d'entrée et petit bug
    Par DJ Caësar 9114 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/06/2006, 22h21
  4. [C#] Comm avec SQL Server ... Bug ?
    Par hobotalker dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/11/2005, 14h47
  5. Gros bug SQL Server avec caractère "²"
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 26/05/2005, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo