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++/CLI Discussion :

problème c++ avec mysql


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    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 : 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
    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
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    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
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    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

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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é
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    On ne somme pas des tableaux de char.
    Utilisez des std::string.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    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?

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

Discussions similaires

  1. Problème accent avec MySQL
    Par fangri dans le forum JDBC
    Réponses: 1
    Dernier message: 15/01/2010, 14h40
  2. Problème arabe avec mysql
    Par a_me dans le forum Installation
    Réponses: 14
    Dernier message: 01/02/2008, 19h28
  3. Problème Sunopsis avec MySQL
    Par Crystalle dans le forum Alimentation
    Réponses: 6
    Dernier message: 23/11/2007, 09h33
  4. problème update avec mysql
    Par opeo dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/03/2007, 11h30
  5. gros problème tomcat avec mysql
    Par filipe93 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 26/11/2006, 14h02

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