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 :

Utilisation de MySQL dans builder


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut Utilisation de MySQL dans builder
    Bonsoir, j'ai un soucis depuis un peu plus d'une semaine, je recherche en vain un moyen de gérer une base de données sous MySQL depuis C++ Builder.
    En recherchant sur le net, j'ai vu qu'il y avait 2 moyens de s'y connecter, le premier avec ODBC, et le deuxième avec l'API MySQL.
    Ayant entendu dire que l'API était beaucoup plus efficace je désire utiliser cette méthode (la question n'étant pas là).

    Pour ceci j'ai bien entendu suivi le tutoriel sur ce même site à cette adresse :
    Utilisation de l'API mySQL avec Borland C++ Builder
    Malheureusement le tuto n'est pas très précis, comme beaucoup je n'ai pas su trouver le répertoire include de mysql (<mySQLHome>\Include)
    j'ai supposé qu'en téléchargeant une version .zip de mysql ici http://dev.mysql.com/downloads/mysql/#downloads, j'ai choisi la première (mysql-5.5.8.zip), ça devrait faire l'affaire.
    Ça n'a pas fonctionné...
    Je vais réessayé une dernière fois demain matin en espérant que cela puisse fonctionner, sinon dites moi si quelque chose ne vas pas déjà, ou alors si le tuto ne fonctionne pas, comment faire autrement ?

    Merci de votre attention !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Perso, je le fais par ODBC moi, et ça m'a pris 10 minutes à comprendre comment le faire alors qu'il y a beaucoup de choses que je n'ai pas comprises dans le tutoriel dont tu parles... donc je suis preneur également d'indications pour l'autre moyen...

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 010
    Par défaut
    l'API est peut-être plus performante mais aussi plus contraignante !
    Vous ne pourrez pas utiliser ni les Composants DB (TDataSource, TDataSet...) ni les Contrôle DB (TDBEdit, TDBGrid)
    J'ai vu au final des codes basés sur l'API pour remplir une TStringGrid nettement plus gourmand qu'un TMyQuery !
    J'ai en même vu des plus gourmands qu'avec un TClientDataSet\TDataSetProvider (alors que c'est la couche la plus gourmande dans l'utilisation de Base de données Delphi)

    ODBC fonctionne très bien, et les performances sont honorables !
    De plus, une base de données SQL, on ne fait pas de SELECT * FROM TABLE pour récupérer toutes les données mais on ajoute un WHERE ou un LIMIT !
    Car même avec les API, il est possible d'écrire un SQL qui donnera des perfomances médiocres !

    Personnellement, je conseille les composants MyDAC de Devart \ CoreLab, ils sont très performants, gère certains aspects de MySQL comme la génération de DUMP sans passer par les outils en ligne de commande ou encore le mode Embedded !
    Et je dis cela pour des bases de 10 Go, 50 Tables, dont certains avec 5 000 000 d'enregistrements nécessitant la modification de MAX_ROWS et AVG_ROW_LENGTH !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Bon même si tu ne répond pas à mon problème je veux bien tenter par ODBC, mais c'est pareil je ne comprend pas comment faire (peut-être que je ne suis pas doué), parce que déjà je ne sais pas ce que c'est qu'ODBC, un logiciel qui fait le lien entre la base et l'environnement de développement ?

    Est-ce qu'il y a un tutoriel là dessus car je n'ai pas trouvé, en tout cas merci pour vos réponses !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    Salut Rwan,

    Est ce que t'as copié le répertoire des includes dans ton répertoire de travail ou tu ne le trouve plus dans le repertoire d'installation de mysql?



    Citation Envoyé par Twan88 Voir le message
    Bon même si tu ne répond pas à mon problème je veux bien tenter par ODBC, mais c'est pareil je ne comprend pas comment faire (peut-être que je ne suis pas doué), parce que déjà je ne sais pas ce que c'est qu'ODBC, un logiciel qui fait le lien entre la base et l'environnement de développement ?

    Est-ce qu'il y a un tutoriel là dessus car je n'ai pas trouvé, en tout cas merci pour vos réponses !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    je l'ai pas trouvé dans le répertoire de mysql, j'ai fais une recherche de mysql.h dans le répertoire de wamp, mais aucun résultat, donc j'ai téléchargé sur le site de mysql les sources mais ça ne fonctionne pas !

  7. #7
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Voir IBPP
    Bonjour
    Pourquoi ne pas essayer IBPP?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Bonjour, déjà c'est quoi IBPP ? et puis pareillement c'est quoi odbcad32.exe ? Je ne connais rien du tout sur ODBC et j'ai l'impression que tout le monde utilise ODBC différemment, bref je ne comprend rien.

    [EDIT] Bon j'ai trouvé ce que c'était que odbcad32.exe, enfin je crois, c'est l'outil d'administration de sources de données ODBC de windows c'est bien ça ?
    Par contre pour l'utilisation je bloque je sais pas comment installer le pilote mysql

    [EDIT2] Bon finalement j'ai réussi à installer le pilote avec mysql connector, mais j'ai un dernier soucis, je ne comprend rien au fonctionnement de ttable tquery et tdatabase. je continue mes recherches mais je ne trouve pas grand chose.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Par défaut
    Bonjour,
    Je te conseille de chercher (par exemple) les sujets que j'ai créé ici même ( forum C++Builder), j'ai posé pas mal de questions qui pourraient t'aider recemment)

  10. #10
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Par défaut
    Merci pour vos réponses, déjà ipbb c'est mort je dois utiliser MySQL, ensuite je vous explique comment j'ai fais.
    J'ai configuré dans l'administrateur de sources de données ODBC de windows ma base MySQL, en faisant test j'ai un joli "connection successful", donc à ce niveau c'est bon (c'est déjà ça).
    Ensuite dans builder j'ai fais un composant database un composant table et un bouton.
    Dans database j'ai mis pour nom et nom d'alias le même nom que celui de la connexion ODBC.
    Et dans le code du bouton j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("INSERT INTO `matable` VALUES('55555', 'blabla', '')");
    Query1->ExecSQL();
    Lors du clic sur le bouton j'ai un joli message d'erreur :
    le project Project1.exe a provoqué une classe d'exception EDBEngineError avec le message 'la table n'existe pas.
    Fichier ou répertoire inexistant.
    Fichier: <cheminduprojet>\nomdematable.DB
    Fichier: <cheminduprojet>\nomdematable.DBF
    Fichier: <cheminduprojet>\nomdematable.txt
    Fichier: <cheminduprojet>\nomdematable'. Processus stoppé. Utilisez le Pas-à-pas ou Exécuter pour continuer
    Je suppose qu'il ne recherche pas dans ma base de donnée mais dans une base interne à Builder que je n'ai pas crée (C'est ça ?).
    Me demandez pas pourquoi j'ai mis ces composants là c'est ce qui me parait le plus logique (et pourtant pas si logique que ça).
    Est-ce que vous avez des exemples par hasard, des projets test de mysql ? (ou autre du moment qu'odbc est configuré je pense que le code ne change presque pas voir pas du tout d'un type de base à une autre.

    Voila merci pour vos réponses

Discussions similaires

  1. utiliser BD Mysql dans SQL server 2008
    Par bebo11 dans le forum SSIS
    Réponses: 2
    Dernier message: 16/04/2010, 01h18
  2. Erreur mysql dans Builder
    Par Fabien50 dans le forum C++Builder
    Réponses: 1
    Dernier message: 25/07/2009, 23h35
  3. Réponses: 3
    Dernier message: 03/05/2008, 15h03
  4. [MySQL] Utilisation PHP MySQL dans le cadre de l'amélioration d'un logiciel
    Par lince102 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/03/2008, 23h14
  5. Utilisation de MySQL dans C::B
    Par Rupella dans le forum Code::Blocks
    Réponses: 4
    Dernier message: 19/07/2006, 09h18

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