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

Problème de compilation API MYSQL


Sujet :

C++

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 Problème de compilation API MYSQL
    Bonjour a tous,

    Je me trouve confronté a une erreur que je ne connai pas et que je n'ai jamais vu.


    Voici mon code de l'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
    MYSQL *conn;
     
                         MYSQL_RES *res;
     
                         MYSQL_ROW row;
     
                         char *server = "localhost";
                         char *user = "thanks";
                         char *password = "thanks";
                         char *database = "***";
     
                         conn = mysql_init(NULL);
     
     
                         if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) 
                         {
                            fprintf(stderr, "%s\n", mysql_error(conn));
                            return(0);
                         }
     
                         string adresse_ip = inet_ntoa(serveur->sin.sin_addr);
                         char sql_query[1000];
                         sprintf(sql_query, "INSERT INTO `historique` (`ID_HISTORIQUE` ,`NOM_SERVEUR` ,`IP_DU_SERVEUR` ,`TYPE_SERVEUR` ,`NOM_APPLICATION` ,`CODE_APPLI` ,`BASILICAT` ,SOUS_BASILICAT` ,`NOM_FLUX` ,`NOM_BASE` ,`NOM_FS` ,`NOM_PROC` ,`NOM_BATCH` ,`NOM_TBS` ,`NOM_SAUVEGARDE` ,`DATE_HEURE` ,`ETAT_SERVEUR` ,`PROBLEME_SCRIPT` ,`FS` ,`PROC` ,`BATCH` ,`TBS` ,`BASE` ,`FLUX` ,`SAUVEGARDE`) VALUES (NULL , NULL, '%s', NULL, NULL, NULL, NULL, NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",adresse_ip, flux,base,fs,proc,batch,tbs,save,etat_serveur,etat_fs,etat_proc,etat_batch,etat_tbs,etat_base,etat_flux,etat_save);
     
                          if (mysql_query(conn, sql_query))
                          {
                             fprintf(stderr, "%s\n", mysql_error(conn));
                             return(0);
                          }
     
     
                          cout<< "Insertion réussi"<<endl;
     
     
     
     
                         mysql_close(conn);

    Voici les variables :

    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
    string etat_save;
      string save;
      string base;
      string etat_base;
      string ligne;
      string etat_flux;
      string flux;
      string etat_tbs;
      string tbs;
      string etat_proc;
      string proc;
      string etat_batch;
      string batch;
      string etat_fs;
      string fs;
    L'erreur de compilation est :

    cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime

    Cordialement

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Visiblement, dans une ellipse (...), tu ne peux passer que des structures pleines, pas des classes.

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sprintf(sql_query,
                      "INSERT INTO `historique` (`ID_HISTORIQUE` ,`NOM_SERVEUR` ,`IP_DU_SERVEUR` ,`TYPE_SERVEUR` ,`NOM_APPLICATION` ,`CODE_APPLI` ,`BASILICAT` ,SOUS_BASILICAT` ,`NOM_FLUX` ,`NOM_BASE` ,`NOM_FS` ,`NOM_PROC` ,`NOM_BATCH` ,`NOM_TBS` ,`NOM_SAUVEGARDE` ,`DATE_HEURE` ,`ETAT_SERVEUR` ,`PROBLEME_SCRIPT` ,`FS` ,`PROC` ,`BATCH` ,`TBS` ,`BASE` ,`FLUX` ,`SAUVEGARDE`)
                      VALUES (NULL , NULL, '%s', NULL, NULL, NULL, NULL, NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
                      adresse_ip.c_str(), flux,base,fs,proc,batch,tbs,save,etat_serveur,etat_fs,etat_proc,etat_batch,etat_tbs,etat_base,etat_flux,etat_save);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    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
    merci pour ta réponse,

    malheureusement d'autres erreurs apparaissent

    les voici :

    no matching function for call to `sprintf(std::string[1000], const char[510], const char*, std::string&, std::string&, std::string&, std::string&, std::string&, std::string&, std::string&, char*&, std::string&, std::string&, std::string&, std::string&, std::string&, std::string&, std::string&)'
    note : int sprintf(char*, const char*, ...)
    cannot convert `std::string*' to `const char*' for argument `2' to `int mysql_query(MYSQL*, const char*)'
    Cordialement

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Les messages d'erreurs sont pourtant clairs, il ne veut pas du ype string, il veut des char * ou des const char *.

    Partout où tu utilises des strings (dans ces appels), il faut extraire la chaine de caractères en faisant string.c_str()
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    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
    donc si j'ai bien compris, la requête devra ressembler a cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sprintf(sql_query, "INSERT INTO `historique` (`ID_HISTORIQUE` ,`NOM_SERVEUR` ,`IP_DU_SERVEUR` ,`TYPE_SERVEUR` ,`NOM_APPLICATION` ,`CODE_APPLI` ,`BASILICAT` ,SOUS_BASILICAT` ,`NOM_FLUX` ,`NOM_BASE` ,`NOM_FS` ,`NOM_PROC` ,`NOM_BATCH` ,`NOM_TBS` ,`NOM_SAUVEGARDE` ,`DATE_HEURE` ,`ETAT_SERVEUR` ,`PROBLEME_SCRIPT` ,`FS` ,`PROC` ,`BATCH` ,`TBS` ,`BASE` ,`FLUX` ,`SAUVEGARDE`) VALUES (NULL , NULL, '%s', NULL, NULL, NULL, NULL, NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', NULL, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",adresse_ip.c_str(), flux.c_str(),base.c_str(),fs.c_str(),proc.c_str(),batch.c_str(),tbs.c_str(),save.c_str(),etat_serveur.c_str(),etat_fs.c_str(),etat_proc.c_str(),etat_batch.c_str(),etat_tbs.c_str(),etat_base.c_str(),etat_flux.c_str(),etat_save.c_str());
    il me dit comme erreur :

    `c_str' has not been declared
    Pourtant j'ai bien la librairie
    request for member of non-aggregate type before '(' token
    cannot convert `std::string*' to `const char*' for argument `2' to `int mysql_query(MYSQL*, const char*)'
    Cordialement

  6. #6
    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
    Ça va faire 5h que j'essaye de débug le programme, je n'y arrive pas aidez moi s'il vous plait


    Cordialement

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

Discussions similaires

  1. Probléme sur las API MySql - fonction manquante
    Par boopix dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/04/2007, 20h55
  2. Problème utilisation API MySQL
    Par naiko dans le forum C
    Réponses: 4
    Dernier message: 11/05/2006, 09h55
  3. compilation api mysql c
    Par nestam dans le forum C
    Réponses: 4
    Dernier message: 04/10/2005, 09h11
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  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