Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 103
    Points : 14
    Points
    14

    Par défaut problème c++ avec mysql

    bonjour

    je suis en train de monter une petite application qui permet de se connecter sur base de données MySql avec le langague C++
    voila mon code
    Code :
    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
    71
    #include "stdafx.h"
    #include <conio.h>
    #include <winsock.h> 
    #include <mysql/mysql.h>
     
    int _tmain(int argc, _TCHAR* argv[])
    {
     
        MYSQL mysql;
        //mySQL = mysql_init(NULL);
           // mysql_init(&mysql);
            mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
     
            if(mysql_real_connect(&mysql,"127.0.0.1","root","","test",0,NULL,0))
                {
                //Déclaration des pointeurs de structure
                MYSQL_RES *result = NULL;
                MYSQL_ROW row = NULL;
     
                unsigned int i = 0;
                unsigned int num_champs = 0;
     
                printf("Lister le nombre de resultats :\n");
                //Requête qui sélectionne tout dans ma table ex_1
                mysql_query(&mysql, "SELECT * FROM ex_1");
                //On met le jeu de résultat dans le pointeur result
                result = mysql_use_result(&mysql);
                //Tant qu il y a encore un résultat ...
                while (( row =  mysql_fetch_row(result)))
                  {
                  printf("Resultat %ld\n", i);
                  i++;
                  }
     
                //Libération du jeu de résultat
                mysql_free_result(result);
     
    // Cette fois, on va lire les données
                printf("\nCette fois, on va lire les donnees :\n");
                //à nouveau la requête qui sélectionne tout dans ma table ex_1
                mysql_query(&mysql, "SELECT * FROM ex_1");
                result = mysql_use_result(&mysql);
                //On récupère le nombre de champs
                num_champs = mysql_num_fields(result);
                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");
                  }
     
                //Fermeture de MySQL
                mysql_close(&mysql);
                }
            else
                {
                printf("Une erreur s est produite lors de la connexion à la BDD!");
                }
     
      printf("\nAppuyez sur une touche\n");
      _getch();
      return 0;
    }
    et lorsque je veux compiler mon programme je reçois ce message:
    `MYSQL' undeclared (first use this function)

    alors que j'ai bien installé le connecteur C++/My Sql et j'ai copie les .lib et .h sur le répertoire de mon compilateur DEV-C++
    merci pour votre aide

  2. #2
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 103
    Points : 14
    Points
    14

    Par défaut

    j'ai pu compiler le programme mais maintenant j'ai ce message d'erreur

    linker error undefined reference to mysql_init

  3. #3
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 911
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 39

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 911
    Points : 2 968
    Points
    2 968

    Par défaut

    Citation Envoyé par zaki_1982 Voir le message
    j'ai pu compiler le programme mais maintenant j'ai ce message d'erreur

    linker error undefined reference to mysql_init
    je pense qu'il te manque les option pour dire au linker d'utiliser les librairies mysql.



    En gros tu dois lui dire comment trouver la dll mysql.

    pour Gcc/g++ cela se fait avec les option -L pour spécifier le chemin des lib et -l pour spécifier le nom.

    Pour visual:
    Tu peux regarder le chapitre "Creating an application that references the dynamic link library."
    http://msdn.microsoft.com/fr-fr/library/ms235636.aspx

    http://msdn.microsoft.com/fr-fr/libr...=vs.71%29.aspx
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  4. #4
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 103
    Points : 14
    Points
    14

    Par défaut

    merci pour ta réponse j'ai pu réussir à se connecter par contre j'ai une autre demande
    sur ma requête sql je veux insérer des variables sur la table voila mon code
    Code :
    mysql_query(conn, "INSERT INTO collecte_login(uid1,matricule,uid2,ip,machine,date) VALUES ('0','100','0','10.0.0.1','mvpc','" + a1 + "'));
    et lorsque je lance mon exe voila le message d'errure que j'ai
    invalid operands of types `const char[106]' and `char[64]' to binary `operator+'
    a1 est un variable de type char [64].

  5. #5
    Expert Confirmé Sénior
    Homme Profil pro Paul Bacelar
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 026
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul Bacelar
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : février 2005
    Messages : 3 026
    Points : 4 846
    Points
    4 846

    Par défaut

    On ne somme pas des tableaux de char.
    Utilisez des std::string.

  6. #6
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 103
    Points : 14
    Points
    14

    Par défaut

    ça marche merci pour ton aide
    j'ai une autre demande est ce qu'il y a une fonction qui permet de récupérer l'adresse ip local?

  7. #7
    Expert Confirmé Sénior
    Homme Profil pro Paul Bacelar
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    3 026
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul Bacelar
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : février 2005
    Messages : 3 026
    Points : 4 846
    Points
    4 846

    Par défaut

    "127.0.0.1" ou "localhost"
    si vous vous compliquez la vie
    http://stackoverflow.com/questions/1...local-computer

  8. #8
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 103
    Points : 14
    Points
    14

    Par défaut

    c'est résolu avec la fonction strcat

  9. #9
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 911
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 39

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 911
    Points : 2 968
    Points
    2 968

    Par défaut

    Citation Envoyé par zaki_1982 Voir le message
    ça marche merci pour ton aide
    j'ai une autre demande est ce qu'il y a une fonction qui permet de récupérer l'adresse ip local?
    pour avoir le nom de la machine tu as gethostname ensuite avec ce nom tu peux récupérer l'adresse ip avec gethostbyname.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •