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

Installation MySQL Discussion :

C API de MySQL


Sujet :

Installation MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut C API de MySQL
    Je désire utiliser les C API de MySQL pour interfacer ma base avec un programme en langage C.

    Je travaille sous windows XP et j'ai donc un compilateur sous cet environnement (DEV-C++).

    Pour démarrer, j'ai pris un exemple simple sur un livre :

    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
    #include <sys/time.h>
    #include <stdio.h>
    #include <mysql.h>
    int main(char **args) {
    MYSQL_RES *result;
    MYSQL_ROW row;
    MYSQL *connection, mysql;
    int state;
    /* connect to the MySQL database at my.server.com */
    mysql_init(&mysql);
    connection = mysql_real_connect(&mysql,"my.server.com", 0, "db_test", 0, 0);
    /* check for a connection error */
    if (connection == NULL) {
    /* print the error message */
    printf(mysql_error(&mysql));
    return 1;
    }
    state = mysql_query(connection,
    "SELECT test_id, test_val FROM test");
    if (state != 0) {
    printf(mysql_error(connection));
    return 1;
    }
    /* must call mysql_store_result() before can issue any other query calls */
    result = mysql_store_result(connection);
    printf("Rows: %d\n", mysql_num_rows(result));
    /* process each row in the result set */
    while ( ( row = mysql_fetch_row(result)) != NULL ) {
    printf("id: %s, val: %s\n",(row[0] ? row[0] : "NULL"),(row[1] ? Row[1] : "NULL"));
    }
    /* free the result set */
    mysql_free_result(result);
    /* close the connection */
    mysql_close(connection);
    printf("Done.\n");
    }

    J'ai pris soins de renseigner l'emplacement de <mysql.h> sur mon compilateur.
    Lors de la compilation, j'ai plus de 100 erreurs faisant référence à dans variables et fonction mals utilisés dans mysql.h et mysql_com.h !!

    Quelqu'un a-t-il une idée commandes ou des instructions à ajouter pour que la compilation puisse s'effectuer correctement ?

    Merci

  2. #2
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    As tu bien installer Mysql.lib ?
    Olivier Miossec

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Comment puis-je le vérifier ?
    Par quel moyen dois-je procéder pour installer Mysql.lib ?

    Remarque : je pensais (à tort ?) que Mysql.lib n'était utilisé qu'à partir de la phase de linkage et pas à la compilation.
    Comme je l'ai spécifié mes erreurs sont des erreurs de compilation.

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    J'suis pas un pro de la prog sous Win mais plutôt sous Linux (Linux rules !!! ). A mon avis, ça doit être le makefile ou la ligne de commande de compil' qui doit être fausse. Peux-tu la poster, STP ?

    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voici la ligne de commande lancée par Dev-C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc.exe "D:\Temp\MySQL\Cours\C API\essai_01.c" -o "D:\Temp\MySQL\Cours\C API\essai_01.exe"    -I"C:\Program Files\Tools\Dev-Cpp\include"  -I"D:\MySQL\include"   -L"C:\Program Files\Tools\Dev-Cpp\lib" -L"D:\MySQL\lib" -lmysql -lnsl -lsocket

  6. #6
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    oki !

    Bon, sous Linux, c'est différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    all : client
     
    MYI = -I/usr/include/mysql
    MYLIBS = -L/usr/include/mysql/ -lmysqlclient
     
    client : mysqlclient.c
    	$(CC) -o client mysqlclient.c $(MYI) $(MYLIBS)
     
    clean:
    	-rm -f *.o
    Comme tu le vois, je rajoute bien sûr les librairies de mysql mais aussi celles du client (-lmysqlclient).
    Essais de l'ajouter, on verra bien

    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Non, c'est pas très différent; toi tu fais ça avec un fichier makefile. Moi je fais ça en ligne. Finalement on fait la même chose.

    Pour ta proposition, ça ne marche puisque comme je l'ai dit mes problèmes se passent à l'étape de compilation (-I ou -i), alors que le fichier mysqlclient n'est pris en compte qu'à la phase de linkage (-L ou -l).

    Je continue à chercher et je vous informe tous dès j'ai trouvé une solution.

    Merci quand même.

    A+

  8. #8
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    J'ai testé ton source.
    J'ai aussi pas mal d'erreurs. A mon avis, il doit me manquer quelques paquetages pour le développement. J'y réfléchis et je te tiens au courant.
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  9. #9
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Ok !

    Mon Api fonctionne ! Il me manquait les paquets suivants : libmysqlclient-dev et libmysqlclient1.
    Si tu es sous Win, vérifies que tu as aussi de tels paquets.
    Je vais maintenant corriger ton source.

    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  10. #10
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Bien, normalement, ta fonction mysql_real_connect est mal écrite. Il lui manque des arguments. Je te laisse t'en référer à la doc officiel (bien écrite d'ailleurs).
    Y a aussi un Row plutôt qu'un row, mais ça, c'est peanuts comme dirait un copain de fac' .

    Bon courage

    @++

    PS : punaise, 500 posts !
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour tes remarques pertinentes.

    Le principal problème c'est qu'il est écrit nul part qu'il faut inclure le fichier config-win.h quand on compile sous windows. J'ai donc simplement ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <config-win.h>
    et tout est rentré dans l'ordre.

    PS : comment on fait pour passer ma question en statut [resolu] ?

    merci les gars

  12. #12
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Normalement, tout en bas à gauche, tu dois avoir 2 boutons délestage et Résolu. Y a qu'à cliquer sur Résolu ! 8)

    Hasta luego !
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. Quelle API pour MySQL ?
    Par shark59 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 29/04/2011, 06h42
  2. Sauvegarde d'une BDD avec API C MySQL
    Par acryline dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/01/2011, 16h14
  3. Gros problème sur l'API de MySQL
    Par qnop dans le forum C
    Réponses: 4
    Dernier message: 01/08/2010, 13h00
  4. Librairie API C mysql
    Par Pgs dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 19/10/2007, 12h36
  5. API c/Mysql : erreur de compilation
    Par jamalmoundir dans le forum C
    Réponses: 11
    Dernier message: 22/05/2006, 11h46

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