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

Bases de données Delphi Discussion :

[MYSQL] Erreur: mysql_num_fields


Sujet :

Bases de données Delphi

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Points : 264
    Points
    264
    Par défaut [MYSQL] Erreur: mysql_num_fields
    Bonjour,

    Suite à l'exécution d'une requête, je souhaite récupérer le nom des champs pour alimenter une StringList. La requête est correctement exécutée puisque je peux crée dynamiquement par la suite un StringGrid contenant les valeurs résultantes de ma requête.

    voici la boucle qui pose problème:
    myFields := mysql_fetch_fields(myRES);
    nb_champs := mysql_num_fields(MyRes);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i := 0 to nb_champs - 1 do
    begin
       astr := myfields^[i].name;
       list.Add(astr);
    end;
    Petit exemple: ma requête contient 3 champs. Lorsque je fais:
    myfields^[0].name; qui me donne le bon de champs
    myfields^[1].name; la chaîne donnée est vide
    myfields^[2].name; plante

    Je ne comprend pas où est mon erreur.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Il nous manque du code (je pense surtout mysql_fetch_row), mais je peux te donner le mien, qui rempli un DataSet Mémoire à partir des API

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
                      with TMemoryClientDataSet(Result) do
                      begin
     
                         // initialisation des colonnes
                         mysql_field_seek(Result_RES, 0);
                         for iCol := 0 to mysql_num_fields(Result_RES)-1 do
                         begin
                            Field_RES := mysql_fetch_field(Result_RES);
                            AddField(Field_RES.name,
                                     TypeMySQLToTypeDB(Field_RES._type),
                                     GetLengthTypeMySQL(Field_RES._type, Field_RES.max_length));
                         end;
     
                         Open();
     
                         // Remplissage des Champs
                         Record_RES := mysql_fetch_row(Result_RES);
     
     
                         while Assigned(Record_RES) do
                         begin
                            mysql_field_seek(Result_RES,0);
     
                            Append();
                            for iCol := 0 to mysql_num_fields(Result_RES)-1 do
                            begin
                               Field_RES := mysql_fetch_field(Result_RES);
                               if Assigned(Record_RES[iCol]) then
                               begin
                                  Fields[iCol].Value:= ValueMySQLToDB(Field_RES._type, Record_RES[iCol]);
                               end;
                            end;
                            Post();
     
                            Record_RES := mysql_fetch_row(Result_RES);
                         end;
                      end;
                   end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [PHP MySQL] Erreur execution requête de type INSERT
    Par Pfeffer dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/01/2006, 17h38
  2. Problème de configuration de MySQL [erreur: aucun privilège]
    Par lambdacrash dans le forum Installation
    Réponses: 9
    Dernier message: 21/12/2005, 18h01
  3. [MYSQL]Erreur EXPLAIN (UPDATE...)
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 10
    Dernier message: 13/10/2005, 11h30
  4. [Tomcat MySQL] Erreur d'initialisation d'un pool
    Par mmed dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/01/2005, 09h22
  5. DBExpress, Delphi 6 et MySQL : Erreur DBX
    Par BoBoToTo dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/05/2004, 11h06

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