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 :

Résultat d'une requette dans une variable


Sujet :

C++Builder

  1. #1
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut Résultat d'une requette dans une variable
    Bonjour,

    je cherche à récupérer le résultat d'une requette de selection avec regrouppement sur une table dans une bd access.
    SELECT Collecte.Localite
    FROM Collecte
    GROUP BY Collecte.Localite
    HAVING (((Collecte.Localite)<>""));
    donc je veux mettre dans une variable "S" le résultat de cette requette

  2. #2
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    Et le composant TQuery, tu l'as essayé ?

    A+

  3. #3
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    merci,

    bien entendu, j'ai utilisé le composant TADOQuery, mais je trouve pas comment mettre ce résultat dans une varible string.

  4. #4
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString S=ADOQuery1->FieldByName("Localite
    ")->AsString;
    Tu as essayé ceci?

  5. #5
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Sinon, voila comment accéder à tout les tuples, de ton resultat de la requête (du champs "Localite"):

    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
     
    if(ADOQuery1->RecordCount>0)
            {
     
     
            ADOQuery1->FindFirst();
     
            for(int i=1;i<=ADOQuery1->RecordCount;i++)
                  {
     
                   ShowMessage(ADOQuery1->FieldByName("Localite")->AsString);
     
                   ADOQuery1->FindNext();
     
                   }
     
     
    }

    A+

  6. #6
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    merci encore,

    j'ai utilisé la version
    Interruption13h
    qui est du même principe de celle de
    BOUBOU81
    . ça marche, OK, mais,

    après execution de la requette j'ai eu par exemple 30 enregistrements, y a t'il un moyen de mettre tout ces élements en même temps dans une variable.

    merci.

  7. #7
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    J'utilise des vector avec STL (Standard Template Library) pour enregistrer mes résultats de DB.

    Pour plus d'info sur STL:
    http://www.sgi.com/tech/stl/stl_introduction.html

    sinon il y a aussi des listes chaînée:
    http://www.ann.jussieu.fr/courscpp/S...Sect06-D1.html

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 386
    Points : 20 475
    Points
    20 475
    Par défaut
    Citation Envoyé par Crayon
    J'utilise des vector avec STL (Standard Template Library) pour enregistrer mes résultats de DB.
    Oui c'est une possibilité mais quitte à faire homogène autant prendre TList qui fait la même chose

  9. #9
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut Tous ça en fonction :p
    Salut !

    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
     
     
     
    AnsiString MetMoiTousCaDansUneVariale_STP(TAdoQuery* AdoQuery)
    {
    AnsiString Resultat="";
     
    if(ADOQuery->RecordCount>0)
            {
            ADOQuery->FindFirst();
     
            for(int i=1;i<=ADOQuery->RecordCount;i++)
                    {
                    Resultat=Resultat+ADOQuery->FieldByName("Localite")->AsString)+"\n";
                    ADOQuery->FindNext();
                    }
            }
     
    return Resultat;
    }
    l'appel ce fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Execution de la requête
     
    //Puis :
    AnsiString MaVariable=MetMoiTousCaDansUneVariale_STP(ADOQuery1);
    Bonne continuation !

  10. #10
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par Mat.M
    Oui c'est une possibilité mais quitte à faire homogène autant prendre TList qui fait la même chose
    SDL est bien mieux pour enregistrer des objets divers, car on a un accès direct aux méthodes et attributs de la classe. En plus la gestion de la mémoire est plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    std::vector<TDateTime> List;
     
    List.push_back( TDateTime(0,0,10,0) );
    List.push_back( TDateTime(0,0,11,0) );
    Pas besoin de savoir la quantité d'objet à insérer, il suffit de faire un push_back

  11. #11
    Membre averti Avatar de BOUBOU81
    Profil pro
    system integrator
    Inscrit en
    Juin 2004
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : Allemagne

    Informations professionnelles :
    Activité : system integrator

    Informations forums :
    Inscription : Juin 2004
    Messages : 358
    Points : 315
    Points
    315
    Par défaut
    Sinon tu peux faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TStringList* Loc=new TStringList();
    ADOQuery1->First();
    while(!ADOQuery1->Eof)
    {
        Loc->Add(ADOQuery1->FieldByName("Localite")->AsString);
        ADOQuery1->Next();
    }
    Comme ça avec la TStringList tu pex faire des tries avec la méthode "sort"
    Mais bon à toi de choisir la méthode

  12. #12
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Merci à tous pour vos réponses.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  2. ouvrir une requette dans une tab dans internet explorer 7
    Par DjeinSlainteLand dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 11/06/2008, 17h06
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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