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 :

probleme avec Fields


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 20
    Par défaut probleme avec Fields
    bonjour, voila je sais pas si j'utilise très bien les Fields
    je veus recuperer tous les nom qui sont dans ma table 'clients' BD MySQL (oui je sais j'en connais qui vont critiquer) dataset les recupere grace a la requette. voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            FrmIndex->SQLQuery1->SQL->Add("SELECT nom FROM client");
            FrmIndex->ClientDataSet1->Active = true;
            FrmIndex->SQLQuery1->ExecSQL();
            FrmIndex->ClientDataSet1->Refresh();
            //for(int i = 0; i < FrmIndex->ClientDataSet1->FieldCount; i++)
            for(int i = 0; i < FrmIndex->ClientDataSet1->RecordCount; i++)
            {
                    nom_recup = FrmIndex->ClientDataSet1->Fields->Count;
                    nom_recup = FrmIndex->ClientDataSet1->Fields->Fields[i]->Text;
                    //CBoxClient->Items->Add(AnsiString S);
            }
    je possede 6 nom dans ma table
    FieldCount est a 1
    RecordCount a 6
    Count reste a 1 aussi
    et Fields[0]->Text recoit donc le premier nom (ex: dupont)
    mais Fields[1]->n'existe pas ou je sais pas koi, il me fait une erreur
    et ainsi de suite
    je voulais savoir ce que recevait exactement mon field, j'ai pourtant mis toutes les proporiété pour cela...
    voila merci beaucoup pour votre aide

  2. #2
    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
    Bonsoir,
    Je ne suis pas du niveau pour donner des cours donc j'vais peut etre dire des betises mais...
    Je comprends pas bien pourquoi tu donnes a 'nom_recup' dans un premier temps une valeur de type 'int' puis une valeur style 'AnsiString' avec 'Text'.
    Je ne pense pas qu'il vaille la peine d'enfermer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom_recup = FrmIndex->ClientDataSet1->Fields->Count;
    dans tes deux boucles puisque RecordCount donnera de toute facon la meme valeur;
    Perso, je serai passé par une boucle style '!While Table->Eof()' avec 'Table->Next()' pour dérouler la table et lire tous les enregistrements
    du champ.
    A mon sens 'Fields[1]' ne peut exister de toutes façons puisque 'FieldCount' est a 1; il ne peut y avoir que 'Fields[0]'.
    Commet se peut il que vous y accédates ? (heu, j'chais pas si c'est tres francais la... )...

  3. #3
    Membre expérimenté
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Par défaut Re: probleme avec Fields
    Bonjour,

    Citation Envoyé par duga
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FrmIndex->SQLQuery1->SQL->Add("SELECT nom FROM client");
    Tu ne sélectionnes qu'un seul champ (nom) donc c'est normal que FieldCount=1 et que Fields[1] n'existe pas !!

  4. #4
    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
    Ainsi la première boucle 'for' est caduque car il n'y aura jamais plus d'un champ désigné par ta requete...
    b'soir...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 20
    Par défaut
    ok merci beaucoup Cantrelle, j'ai fais à peu près comme tu m'as proposé de faire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (!FrmIndex->ClientDataSet1->Eof)
    {
              nom_recup = FrmIndex->ClientDataSet1->Fields->Fields[0]->Text;
              CBoxClient->Items->Add(nom_recup);
              FrmIndex->ClientDataSet1->Next();
    }
    merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/04/2014, 11h13
  2. probleme avec un fields
    Par swissmade dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/08/2007, 11h50
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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