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

Windows Discussion :

API MYQSL erreur de compilation


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 66
    Par défaut API MYQSL erreur de compilation
    Bonjour,

    Voila mon souci je cherche a réaliser un connexion a une base de données mysql.
    en suivant le tutoriel qui se trouve ici

    mais malheureusement je me retrouve avec une erreur de compilation, et je comprend pas pourquoi.

    Voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include <winsock2.h>    	/*socket*/
    #include <stdio.h>      	/*printf*/
    #include <MYSQL/mysql.h>
    #define __WIN__
    
    
    #pragma comment(lib, "ws2_32.lib")
    
    int main()
    {
    
    	
     printf ("code appli:%s type serveur : %s\n",code_appli,type_serveur);
    //Déclaration du pointeur de structure de type MYSQL
        MYSQL mysql;
            //Initialisation de MySQL
            mysql_init(&mysql);
            //Options de connexion
            mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
    
            //Si la connexion réussie...
            if(mysql_real_connect(&mysql,"localhost","thanks","thanks","atos",0,NULL,0))
            {
                //Requête qui sélectionne tout dans ma table scores
                mysql_query(&mysql, "SELECT * FROM historique");
    
                //Déclaration des pointeurs de structure
                MYSQL_RES *result = NULL;
                MYSQL_ROW *row = NULL;
    
                unsigned int i = 0;
                unsigned int num_champs = 0;
    
                //On met le jeu de résultat dans le pointeur result (maintenant on utilise mysql_store_result
                result = mysql_store_result(&mysql);
    
                //On récupère le nombre de champs
                num_champs = mysql_num_fields(result);
    
                //Tant qu'il y a encore un résultat ...
                while ((row = mysql_fetch_row(result)))
                {
                    //On déclare un pointeur long non signé pour y stocker la taille des valeurs
                    unsigned long *lengths;
    
                    //On stocke cette taille dans le pointeur
                    lengths = mysql_fetch_lengths(result);
    
                    //On fait une boucle pour avoir la valeur de chaque champs
                   for(i = 0; i < num_champs; i++)
                   {
                       //On ecrit toutes les valeurs
                       printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
                   }
                   printf("\n");
                }
    
                //Libération du jeu de résultat
                mysql_free_result(result);
    
                //Fermeture de MySQL
                mysql_close(&mysql);
    
            }
            else  //Sinon ...
            {
                printf("Une erreur s'est produite lors de la connexion à la BDD!");
            }
    }
    }



    voici les erreurs :

    - ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ((row = mysql_fetch_row(result)))
    erreur:

    cannot convert 'char**' to 'char***'in assignment



    - ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");

    erreur:

    conditionnal expresion bewtewn distinc pointer type 'char**'and 'const char*' lacks a cast


    Cordialement

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Voici le prototype de mysql_fetch_row()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
    et voici comment tu déclares row censé accueillir le valeur retournée par mysql_fetch_row()
    Je pense que tu as compris le problème.
    Cordialement.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut
    +1 pour nico !

    Si non pour ton printf, c'est bizare, je croyais que %.* ca servait a reprendre la précision précédente.... deplus tu as un argu en trop ou un %s en moins non ?

    bon courage

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par molox Voir le message
    Si non pour ton printf, c'est bizare, je croyais que %.* ca servait a reprendre la précision précédente.... deplus tu as un argu en trop ou un %s en moins non ?
    non le printf() est bon dans la mesure où il déclare correctement sa variable row.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut
    Salut,

    Nico, Peux tu me préciser ce point sur le printf, il y'a quelque chose que je ne comprend pas :

    printf("[%.*s] ", (int) lengths[i], row[i] ? row[i] : "NULL");
    Je vois :

    1er argu : lengths[i]
    2nd argu : row[i] ou "NULL"

    par contre je ne vois que 1 seul %s dans le format du printtf
    un "%.*s".

    Je croyais que ".*" n'etait la que pour prendre la précision du précédent format du précédent printf

    Disont qu'il me semble qu'il manque un %s ou il y'a un argument en trop, peux tu me dire ou je me trompe ?

    Molox

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par norme C99
    5 As noted above,a field width, or precision, or both, may be indicated by an asterisk. In
    this case, an int argument supplies the field width or precision. The arguments
    specifying field width, or precision, or both, shall appear (in that order) before the
    argument (if any) to be converted. A negative field width argument is taken as a - flag
    followed by a positive field width. A negative precision argument is taken as if the
    precision were omitted.

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

Discussions similaires

  1. Erreur de compilation API windows
    Par MarioNoFearS dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2007, 08h40
  2. Réponses: 6
    Dernier message: 28/03/2007, 19h40
  3. API windows erreur a la compilation du projet
    Par JoneZy dans le forum Windows
    Réponses: 3
    Dernier message: 25/12/2006, 23h38
  4. API c/Mysql : erreur de compilation
    Par jamalmoundir dans le forum C
    Réponses: 11
    Dernier message: 22/05/2006, 11h46
  5. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/06/2004, 17h19

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