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 :

Usage de l'Api MySQL (resultat en fct du nom de colonne)


Sujet :

C++Builder

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut Usage de l'Api MySQL (resultat en fct du nom de colonne)
    Bonjour la comunauté

    j'ai un petit souchi en utilisant l'API MySQL:

    voila, j'aimerais pouvoir lire mes résultats en fonction du nom de la colonne, comme en php par exemple quand j'use de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = $row['NomDeLaColonne']
    or, avec l'API, je ne peux faire que:
    ce que je voudrais, mais qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = myROW['NomDeLaColonne']
    si vous avez ujne solution, je suis prenneur... merci à vous

  2. #2
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Je n'ai pas trouvé quelque chose de similaire dans l'Api mySQL
    peut être existe t'il de Wrapper ( classe C++ toutes pretes) pour utiliser plus facilement ces fonctions C.

    l'idéal serait de trouver un Wrapper comme ici et voir le completer avec redéfintions d'opérateurs [] pour obtenir quelquechose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TMaClasse mRow ;     
    MaVariable = mROW["NomDeLaColonne"];
    mais ça prend du temps..

    peut être peux tu, en attendant ,
    créer toi même une fonction pour retrouver l'index
    par rapport au nom de champs en t'instpirant de l'article de lfe :
    http://lfe.developpez.com/BCBmySQL/

    du style :
    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
     
    // myRes doit etre rempli au préalable par mysql_store_result
    int IndexOfFieldName(MYSQL_RES *myRES,AnsiString myFieldName)
    {
     
       if(!myRES ) return -1;
       int FieldsCount = mysql_num_fields(myRES);
       MYSQL_FIELD *myFields = mysql_fetch_fields(myRES);
       for(unsigned int i = 0; i < FieldsCount; i++)
       {
          if(AnsiString(myFields[i].name).LowerCase() ==  myFieldName.LowerCase()){
             return i;
          }
       }
       return -1;
    }

    et pour obtenir quelque chose qui se rapproche de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = myROW["NomDeLaColonne"]
    on peut écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = ValOf(MyRES,"NomDeLaColonne");
    dont l'implementation pourrait se rapprocher de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    AnsiString ValOf(MYSQL_RES *myRES,AnsiString myField)
    {
      int field_count = mysql_num_fields(myRES);
      int index = IndexOfFieldName(myRES,myField);
      MYSQL_ROW myROW = mysql_fetch_row(myRES);
      return AnsiString(myROW[index]);
    }
    et l'utilisation :

    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
               (voir article de LFE pour initialisation)  
                .....
                MYSQL_RES *myRES;
                if (!mysql_query(mySQL, "SELECT * FROM CLIENT")) {
                    myRES = mysql_store_result(mySQL);
                    if(myRES){
                        //pour chaque enregistrement
                        for(unsigned int i = 0; i < myRES->row_count; i++) {
     
                           // afficher la valeur du champs donné
                           AnsiString aStr = ValOf(myRES,"NOM_CLI");      //< utilisation de la fonction ValOf
                           ListBox1->Items->Add(aStr);
     
     
                        }
                    }
     
                }

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    c'est très interessant en effet, et l'utilisation d'une classe perso utilisant les fonctions de l'API pourrait m'affranchir de l'initialisation qui pourrait être fait donc automatiquement dansla classe, restant ainsi transparent pour le reste de mon code. Et ben grace a toi, j'ai trouvé une occupation pour le week end qui arrive, merci beaucoup

    Sylvain

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/03/2007, 14h41
  2. [MFC] [API mySQL] Sous requêtes
    Par Guybrush113 dans le forum MFC
    Réponses: 5
    Dernier message: 29/04/2004, 16h14
  3. API MySQL - Connexion réseau
    Par klael dans le forum Bases de données
    Réponses: 3
    Dernier message: 18/03/2004, 09h25
  4. Utilisation des API MySQL // ADO ou BDE ? (sujet 2)
    Par rohstev dans le forum C++Builder
    Réponses: 8
    Dernier message: 07/11/2003, 10h50
  5. [DevC++]Installation de l'API MySQL
    Par Nasky dans le forum Dev-C++
    Réponses: 22
    Dernier message: 24/07/2003, 22h40

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