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 :

FieldBYName et SQLQuery


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de LotfiB
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut FieldBYName et SQLQuery
    Bonjour

    je voudrai accéder au résultat d'une requète SQL (j'utilise dbexpress / C++ 2007), mais je voudrai accéder avec le FieldBYName.
    L'accès via les éléments SQLQuery1->Fields->Fields[0]->Text
    marche bien.

    mais
    Memo1->Lines->Add( SQLQuery1->Fields->FieldByName("nom")->Text);
    ne donne rien...

    Une idée ?
    Merci

    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
    13
    14
    15
     
        SQLQuery1->SQL->Text=EditQuery->Text;
        SQLQuery1->ExecSQL(false);
        Memo1->Lines->Add("\n------------------------\nQuery openned : ");
        Memo1->Lines->Add( SQLQuery1->SQL->Text );
            while (! SQLQuery1->Eof)
                {
    //            Memo1->Lines->Add( SQLQuery1->Fields->Fields[0]->Text
    //                                        +"|"+SQLQuery1->Fields->Fields[1]->Text
    //                                        +"|"+SQLQuery1->Fields->Fields[2]->Text
    //                                        +"|"+SQLQuery1->Fields->Fields[3]->Text);
                Memo1->Lines->Add( SQLQuery1->Fields->FieldByName("nom")->Text);
                SQLQuery1->Next();
                }
        SQLQuery1->Close();

  2. #2
    Membre confirmé Avatar de LotfiB
    Inscrit en
    Août 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 117
    Par défaut
    ça marche, il fallait faire un
    SQLQuery1->Open(); plutôt qu'un ExecSQL(false);

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    Au fait,

    query->FieldByName( field_name )->AsString

    est plus simple que query->Fields->Field....tbnsfknf

    Tu peux même coder un wrapper au dessus du TSQLQuery pour avoir plus facile et avoir une syntaxe identique à celle-ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AnsiString firstname;
    MyQuery query( connector );
    query = "SELECT firstname FROM USER WHERE ID = :ID";
    query["ID"] = user_id;
    query.activate();
    if(  !query.empty() ) {
       firstname = query["firstname"];
    }

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

Discussions similaires

  1. Trim et SQLQuery sur Interbase : question bête ?
    Par KRis dans le forum Bases de données
    Réponses: 5
    Dernier message: 13/01/2006, 23h36
  2. Réponses: 13
    Dernier message: 03/01/2006, 10h56
  3. Comment faire un test avant un FieldByName().value = ... ?
    Par fredfred dans le forum Bases de données
    Réponses: 13
    Dernier message: 19/09/2005, 10h09
  4. Probleme de requetes avec SQLQuery
    Par Floverdoz dans le forum Bases de données
    Réponses: 19
    Dernier message: 01/06/2005, 16h43
  5. FieldbyName => deux champs du meme nom
    Par dacid dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/01/2005, 14h05

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