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

Problème de connexion à base de données MySQL avec C++ Builder 6


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut Problème de connexion à base de données MySQL avec C++ Builder 6
    Bonjour,

    J'ai de sérieux problèmes depuis quelques temps avec la programmation. J'en viens à me demander si j'ai oublié comment je le faisais, si je ne sais plus lire, etc.

    Je prendrai le cas le plus simple.

    J'ai installé Borland C++ Builder Enterprise 6, EasyPHP 1.8 et MySQL-ODBC 3.5.1 sur ma machine. Je veux tout simplement accéder à la base de données par défaut mysql créer lors de l'installation de EasyPHP. Ben, j'ai fait comme je le faisais avant, j'ai même suivi les instructions de http://www.developpez.com/delphi/faq...ermysqlavecado en vain.

    Quand je crée par exemple un DSN et que je teste, il n'y a pas de problèmes, TOUT EST OK.

    Quand je retourne dans C++ Builder, que j'utilise le composant TADOConnection pour me connecter et que je teste simplement que le DSN passe depuis l'application, il dit encore que c'est OK. Mais quand, je lui indique mysql dans le champ Entrez le catalogue initial à utiliser: il me marque l'erreur suivante:

    "Echec du test de connection en raison d'une erreur survenue lors de l'initialisation du fournisseur. Défaillance irrémédiable."



    Bon, je ne sais même pas d'ou setruc vient. J'ai eu des problèmes avec mon XP Pro que j'ai réinstallé mais le problème persiste toujours et je ne sais plus quoi faire.

    J'attends vos réponse car je suis bloqué dans mon travail.

    Merci encore à vous tous!
    flet le kid

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    pour utiliser mysql il te faut une librairie mysql

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut
    Qu'entends tu stp par :

    Il te faut une librairie MYSQL
    ?


    J'ai installé EasyPHP qui je suppose m'installe tout ce dont j'ai besoin.

    Peux tu être plus précis ?

    Merci!
    flet le kid

  4. #4
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par flet le kid
    Qu'entends tu stp par :

    Il te faut une librairie MYSQL
    ?
    Si tu utilises l'API directement il te faut la librairie (.lib). Habituellement je préfère utiliser l'API directement, c'est beaucoup plus rapide que de passer par l'ODBC. Pour plus de renseignement va voir:
    http://lfe.developpez.com/BCBmySQL
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut
    Merci CRAYON pour ton indication. J'ai lu qu'on peut effectivement utiliser l'API directement. Mais bon, comme je ne voulais pas changer l'équipe qui a toujours gagné (ODBC), voilà pourquoi, je veux toujours faire avec ODBC.

    Je vais essayer avec l'API et vous faire part de l'évolution de mon travail. Merci donc pour le lien.

    Seulement, j'aimerais bien que quelqu'un m'explique pourquoi, j'ai le message d'erreur cité au début de mon post. ça me parait bizarre, surtout qu'avant, je n'avais pas ce problème. Je sais que mon disque est actuellement abimé à certains endroits mais est ce que ça peut faire quelque chose? Je me demande bien. J'ai tout fait jusqu'à réinstallé XP mais rien n'a changé.

    Si quelqu'un peu m'expliquer ce qui m'arrive!

    Bon, je vous tiens au courant concernant l'API!

    Merci et j'attends encore d'autres interventions!
    flet le kid

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut
    Bonjour,
    j'ai un problème avec le point

    1.2. Création de la libraire d'importation


    Il faut ensuite créer la librairie libmySQL.lib par la commande suivante, exécutée dans une console : implib libmySQL.lib libmySQL.dll
    La libraire ainsi créée doit être ajoutée au projet.

    Quand j'exécute cela dans l'écran noir de Windows (Exécuter... -> cmd) et que je saisis: implib libmySQL.lib libmySQL.dll,j'obtiens le message suivant:

    Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
    Error : unable to open file
    .

    Comment dois je faire pour le faire correctement?


    Et puis, lorsque je vais utiliser cette méthode (API), est ce que j'aurais besoin que MySQL soit installé sur toutes les machines sur lesquelles mon applications va tourner?

    Merci encore pour vos interventions.
    flet le kid

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut
    Bonsoir,
    quelqu'un pourrait il m'expliquer la méthode concernant l'utilisation de l'API, surtout le point:

    1.2. Création de la libraire d'importation

    Il faut ensuite créer la librairie libmySQL.lib par la commande suivante, exécutée dans une console : implib libmySQL.lib libmySQL.dll
    La libraire ainsi créée doit être ajoutée au projet.


    car je n'arrive pas à la passer.
    Merci
    flet le kid

  8. #8
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut connexion bd mysql
    j'esper que ca pourra t'aider

    @+

    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
     
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <unistd.h> 
    #include <mysql/mysql.h> 
     
     
    void requete(MYSQL *conn) 
    { 
        MYSQL_RES *result; 
        MYSQL_ROW elementsColonne; 
        unsigned int nbColonnes; 
        int i; 
     
        if (mysql_query(conn,"SELECT * FROM nom_table")) 
        { 
            printf("Erreur dans la requête\n"); 
            return; 
        } 
        else // requête bonne, traitons les données qu'elle renvoit 
        { 
            result = mysql_store_result(conn); 
            if (result != NULL) // MySQL peut extraire des résultats 
            { 
                nbColonnes = mysql_num_fields(result); 
     
                // récupère les enregistrements un par un 
                while ((elementsColonne = mysql_fetch_row(result))) 
                { 
                    for (i = 0; i < nbColonnes; i++) 
                        printf("%s\t", (elementsColonne[i] != NULL) ? elementsColonne[i] : "NULL"); 
                    printf("\n"); 
                } 
                // on libère la mémoire prise pour les résultats 
                mysql_free_result(result); 
            } 
            else 
                printf("Aucun résultat à la requête !\n"); 
        } 
    } 
     
     
    int main(int argc, char*argv[]) 
    { 
        MYSQL *conn; 
     
        // initialisation 
        if((conn = mysql_init(NULL)) == NULL) 
        { 
            printf("Erreur d'initialisation\n"); 
            return 0; 
        } 
     
        // connexion au serveur (ici, en local) 
        if(mysql_real_connect(conn,"localhost","nom_utilisateur","mot_de_passe","nom_base",0,NULL,0)==NULL) 
        { 
            printf("Erreur de connexion\n"); 
            return 0; 
        } 
     
        // on lance la requête 
        requete(conn); 
     
        // on ferme la connexion au serveur MySQL 
        mysql_close(conn); 
    }

  9. #9
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par flet le kid
    Quand j'exécute cela dans l'écran noir de Windows (Exécuter... -> cmd) et que je saisis: implib libmySQL.lib libmySQL.dll,j'obtiens le message suivant:

    Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
    Error : unable to open file
    .
    La raison sans doute pour laquelle sa ne fonctionne pas, c'est que le fichier n'est pas dans le chemin (path). Est-ce que tu as téléchargé libmySQL.dll?
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème de connexion à base de données MySQL avec C++ Builder 6
    Citation Envoyé par Crayon
    La raison sans doute pour laquelle sa ne fonctionne pas, c'est que le fichier n'est pas dans le chemin (path). Est-ce que tu as téléchargé libmySQL.dll?
    Bonjour,

    Je confirme ce point.... mais plutot sur le fait que le PATH doit contenir le répertoire d'installation de mysql (celui qui contient notamment les dll)...

    J'ai rencontré le meme problème, qui s'est résolu de lui même en réinstallant le noyau MySQL et en ajoutant l'option d'inclusion du répertoire d'installation dans le PATH...

    Sinon, autre solution, mettre la DLL dans le répertoire de ton appli, mais tu perds alors les évolutions éventuelles de la dll en cas d'installation d'une nouvelle version MySQL...

    A toi de voir.

    Bartman.

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Bartman
    Bonjour,

    Je confirme ce point.... mais plutot sur le fait que le PATH doit contenir le répertoire d'installation de mysql (celui qui contient notamment les dll)...

    J'ai rencontré le meme problème, qui s'est résolu de lui même en réinstallant le noyau MySQL et en ajoutant l'option d'inclusion du répertoire d'installation dans le PATH...

    Sinon, autre solution, mettre la DLL dans le répertoire de ton appli, mais tu perds alors les évolutions éventuelles de la dll en cas d'installation d'une nouvelle version MySQL...

    A toi de voir.

    Bartman.

    Vous savez, je ne suis pas un EXPERT MySQL.
    Quand, tu parles de réinstaller le noyau, tu m'effraies. Comment t'y prends tu?

    D'après ton intervention et celle de CRAYON, j'ai l'impression que je dois télécharger la librairie.
    Quand, je lis le document dont j'ai énuméré la partie qui me créee des problèmes, ils ont parlé de :

    Il faut ensuite créer la librairie libmySQL.lib par la commande suivante, exécutée dans une console : implib libmySQL.lib libmySQL.dll
    La libraire ainsi créée doit être ajoutée au projet.



    Le problème est que je ne comprends pas trop COMMENT & OU exécuter cette intruction.

    Comme je ne suis pas un expert, j'installe EasyPHP.Il installe en même temps mySQL.Et c'est avec ça que je travaille. Mais, j'ai téléchargé sur le site de MySQL la dernière version. Je vais donc l'installer et essayer vos solutions. Voir un peu ce que ça va donner.

    MAis dites, vous n'avez pas un autre lien ou je peux avoir une documentation (en français svp) qui me dit comment utiliser l'API de MySQl ?

    Là, je suis au boulot et je ne peux pas pour l'instant essayer vos solutions. Mais en rentrant ce soir, je vais essayer tout ça et vous tenir informé.


    Merci
    flet le kid

  12. #12
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Téléchargement (Je te conseil "Windows downloads Without installer"):
    http://dev.mysql.com/downloads/mysql/5.0.html#downloads

    Dans le dossier lib tu va trouver la DLL et dans include les fichiers d'entête à inclure.
    Documentation sur l'API:
    http://dev.mysql.com/doc/refman/5.0/fr/mysql-apis.html

    Désolé pour le retard dans la réponse
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

Discussions similaires

  1. Problème connexion base de données MySQL avec VB.net
    Par fridrai dans le forum Administration
    Réponses: 3
    Dernier message: 28/05/2013, 19h59
  2. Réponses: 5
    Dernier message: 09/02/2010, 03h02
  3. Problème de connexion à base de données MySQL
    Par Paulinho dans le forum Installation
    Réponses: 2
    Dernier message: 03/12/2007, 18h35
  4. Problème de copie d'une base de données MySQL avec PHP
    Par rheem dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/10/2007, 15h52
  5. Réponses: 4
    Dernier message: 03/08/2007, 15h55

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