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

Outils MySQL Discussion :

Probleme avec Mysql_init


Sujet :

Outils MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut Probleme avec Mysql_init
    Bonjour, j'essai d'utiliser la fonction mysql_init avec l'API C; J'utilise Eclipse comme EDI et après avoir mis en entête le fichier <mysql.h> et avoir mis la bonne ligne dans le Makefile, j'utilise mes fonctions mysql_*;
    Tout se passe correctement à la compilation et l'edition des liens et quand j'y vais en debug, mon pg plante à mysql_init (donc au tout début) il me marque un truc du genre :
    "Can't find a source file at "dl-object.c" "

    Voici un extrait de 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
     
    #include <stdio.h>
    #include <mysql/mysql.h>
    #include <malloc.h>
    #define MYSQL_HOST "localhost"
    #define MYSQL_DB "MENU"
    #define MYSQL_LOGIN "appli"
    #define MYSQL_PASSWD "apply"
    #define MYSQL_PORT 3306
     
    int main() {
     MYSQL mysql;
     MYSQL_RES *result;
     MYSQL_ROW row;
     
     mysql_init(&mysql);
    /* Le reste du code */
    }

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut Précision
    Je vais être un peu plus précis :
    Je me suis inspiré d'un toturial API c pour Mysql dont je vous renvois l'adresse :
    http://translate.google.fr/translate...3Dfr%26tl%3Den

    Bon c'est de la traduction d'anglais par rapport au Francais;
    Aussi sous Eclipse j'ai développé le code suivant :

    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
     
    #include <mysql/mysql.h>
    #include <stdio.h>
     
    int main() {
     MYSQL *mysql;
     MYSQL_RES *result;
     MYSQL_ROW row;
     char *host= "localhost";
     char *db= "MENU";
    /* 
      J'ai créé une base de données en interactive dont le propriétaire est appli
       et la password et apply : elle s'appelle MENU et possède deux tables opt_menu et 
       menu
    */
     char *login = "appli";
     char *passwd= "apply";
     int port= 3306;
     
     mysql=mysql_init(NULL);
     if (!mysql_real_connect(mysql,host,login, passwd, db, port, NULL, 0)) {
      return -1;
     }
     
     if (mysql_select_db(mysql,db)) {
      mysql_close(mysql);
      return -1;
     }
     
     mysql_query(mysql,"SELECT n_opt_menu FROM opt_menu");
     result = mysql_use_result(mysql);
     
     while((row = mysql_fetch_row(result))) {
      printf("%s",row[1]);
      fflush(stdout);
     }
     
     mysql_close(mysql);
      return 0;
    }
    Sur eclipse je n'ai pas choisis l'option de générer mon Makefile automatiquement mais j'ai choisis de créer mon propre makefile;

    Les instructions sont les suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    all : lecture_menu
    lecture_menu: main.c
    gcc -o lecture_menu `mysql_config --ccflags` mainc.c `mysql_config --libs`
    Et ça génère mon exécutable cool

    Ensuite je débuge et bam!!! Sur l'instruction mysql_init j'ai l'insulte suivante :
    No source available for "__i686.get_pc_thunk.bx() "

    Je ne sais pas si vous serez en mesure de pouvoir m'aider mais sachez que je fonctionne sur mandriva et je téléchargeais depuis le site Mysql les packages (dont celui mysql_devel qui contient la librairie libmysqlclient.so) et j'utilisais l'instruction :
    rpm -ivh fichier_a_installer

    Ensuite je me suis rendu compte que le centre de gestion d'installation sous Mandrive était mieux; Donc sur la gestion des installations et des désinstallations des logiciels j'ai désinstaller mysql-devel et réinstaller mysql_devel;

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Par défaut
    Bonjour,
    Le probleme ne venait pas de mysql_init. En fait j'ai expliqué mon erreur en debug à partir d'Eclipse. Or comme je ne connais pas toutes les fonctionnalités de cette EDI : en tous cas pour la partie debug, je n'étais pas forcément en mesure de tester mon appli : les sources de l'API n'étant pas accessible je ne peux rentrer dedans en debug et comme je ne sais pas faire de "step" au lieu de "next", le message d'erreur apparaissait souvent.
    Ceci dit le résultat n'étais pas celui escompté : je suppose que c'est soit des problèmes de droit, soit des problèmes d'installation.
    En désinstallant, réinstallant, recréant des tables, fournissant les droits de l'utilisateur définit dans le souce utilisant MySql, j'arrive à avoir le résultat escompté.

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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