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 :

Se connecter à MySQL depuis code c++


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut Se connecter à MySQL depuis code c++
    Bonjour a tous!
    Je suis toujours en train de développer mon appli devant permettre de se connecter à différents types de serveurs de base de données.
    Je m'en suis sorti pour PostGre et SQL Server, mais là j'attaque mysql et j'ai un léger problème.
    Quand j'essaie de me connecter à la base en utilisant ma chaine de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Provider=MySQLProv;Server=localhost;Data Source=db_test;User ID=root;Password=root;
    Mais a chaque fois, je me retrouve avec la même erreur :
    "Impossible de trouver le fournisseur. Il est peut être mal installé"

    J'ai longuement parcouru les forums et autres joyeuseries, et au final, je suis tombé sur un post qui parlait du MDAC (Microsoft Data Access)

    Mes questions sont les suivantes:
    - Est ce que quelqu'un a déja été confronté à ce genre de problème? Et si oui, comment faire pour le résoudre
    - Doit on forcément installer le MDAC pour accéder à la base MySQL depuis un code c++?

    Merci d'avance de votre aide

    PS: Quelqu'un a t il déja réussi à se connecter à MySQL en utilisant OleDB???

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    Personne n'a fait ça?
    Personne ne connait cette techno?

  3. #3
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    MDAC est installé de base avec windows.
    As-tu installé le driver MySQL adéquat ?
    Pourquoi ne pas passer par ODBC ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    ODBC est moins récent que OleDB, et OleDB est "censé" fonctionner indifféremment du type de serveur de base de données.
    J'ai bien l'impression qu'il faut inclure une librairie au projet, mais je ne sais pas quoi, ni comment faire...

  5. #5
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par fantomchris Voir le message
    ODBC est moins récent que OleDB, et OleDB est "censé" fonctionner indifféremment du type de serveur de base de données.
    Peut être mais il faut quand même installer les drivers ODBC spécifiques à MySQL, c'est lui ton "provider" d'accès à la base. Tu les trouveras sur le site MySQL
    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
    .

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    Si c'est de MyOleDB que tu parles, c'est déjà fait.
    Il semble qu'il arrive à se connecter, mais seulement en apparence car dès que je fais une requête de type select, c'est du grand n'importe quoi.
    On dirait qu'il arrive à exécuter la requête, mais que le résultat est inexploitable.

    Y a t il une librairie à inclure au projet pour que cela marche correctement?
    Parce que là j'avoue que je suis totalement perdu.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Points : 185
    Points
    185
    Par défaut
    moi j'utilise OTL http://otl.sourceforge.net/ pour me connecter sur une BDD oracle mais je crois que ca marche très bien sur MYSql

    http://otl.sourceforge.net/otl3_examples.htm

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    ...Merci, mais ce dont j'ai besoin, c'est MySQL, Oracle, ce sera le problème suivant
    Et je ne peux utiliser qu'OleDB

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    Bon... c'est avec ghorreur que je viens de me rendre compte d'une chose:
    Il semblerait que tous les SGBD fonctionnent de la même façon, mais pas MySQL.
    j'ai cru comprendre que pour ce SGBD, il faut utiliser une librairie différente que la simple librairie OleDB : libmysql.dll, libmysql.lib

    Je vous en supplie, dites moi que je me trompe... Car si ce que je viens de dire est vrai, toute mon architecture de codage est à revoir.
    Je rappelle que je dois être capable de me connecter à n'importe quel SGBD : Postgres (ca marche), SQL Server (ca marche), Access(ca marche), MySQL (AU SECOURS!) et Oracle (Pas commencé).

    J'ai besoin d'aide là!

  10. #10
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Je viens de lire cela et je pense que cela t'interessera : http://msdn.microsoft.com/fr-fr/library/bb469883.aspx

    En substance, OleDB supporte "nativement" SqlServer et Oracle (et plein d'autre encore). Il supporte aussi toutes les bases de données supportées par ODBC.

    MySQL n'est pas supporté nativement ni par OleDB ni par ODBC. Par contre, il existe un driver ODBC pour MySQL, si tu l'installes sur ta machine, OleDB supportera de fait MySQL. C'est le prix à payer. MySQL ayant une licence particulière, il ne peut pas être intégré dans des produits tiers "nativement" sans hiatus avec la licence de ce produit tiers.

    Par contre, je suis surpris que PostGRE soit supporté nativement. Tu es sûr que tu n'a rien installé d'autre car je n'en voie pas mention dans la documentation.
    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
    .

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    Alors oui... et non à la fois
    Car oui, le driver myoledb permet de faire fonctionner certaines choses, comme la simple connexion.
    Mais lorsqu'il s'agit de détruire la connexion existante pour en récréer une tout de suite, ça plante.
    De plus, là où c'est plus grave, c'est que les résultats de requêtes sql de type SELECT sont illisibles.
    Que l'on passe par l'index de la colonne ou carrément son nom, il est impossible de lire quelque donnée que ce soit, enfin, pour le moment, je n'ai pas trouvé comment faire, mais c'est pas faute de chercher.
    J'ai vraiment l'impression que la lib OleDb a des osucis avec MySQL, même en ayant installé MyOleDb

    A moins qu'il faille inclure une librairie au projet... j'avoues etre un peu perdu là


    PS: Pour Postgres, j'ai juste installé le serveur PostGre, rien de plus et ça fonctionne très bien. Enfin à ce que j'ai pu tester

  12. #12
    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 : 61
    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
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par fantomchris Voir le message
    PS: Pour Postgres, j'ai juste installé le serveur PostGre, rien de plus et ça fonctionne très bien. Enfin à ce que j'ai pu tester
    Alors probablement qu'en installant le serveur, tu as aussi installer les drivers nécessaire à OleDB pour gérer les bases PostGRE
    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
    .

  13. #13
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 386
    Points
    20 386
    Par défaut
    Citation Envoyé par fantomchris Voir le message
    - Doit on forcément installer le MDAC pour accéder à la base MySQL depuis un code c++?
    Tu peux appeler MYSQL en natif avec des .libs aller sur le site de MySQL tout est expliqué.
    Sinon si via ODBC tu as une erreur de connection c'est que c'est évidemment mal configuré.
    Est-ce que tu sais qu'il ya un outil sous Windows pour cela ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Points : 77
    Points
    77
    Par défaut
    Bon, merci à tous!
    Cela n'a vraiment pas été simple car il a fallu que je revois toutes l'architecture de mon code, du moins pour la partie bases de données, mais ça fonctionne en utilisant la lib mysql.
    Ça ne fonctionne pas du tout comme le reste, et j'avoue que ça me manque assez de ne pas pouvoir récupérer une valeur en donnant le nom de la colonne visée.
    Bref, ça fonctionne bien! Pourvu que ça dur

    PS: Un outil sous Windows pour faire quoi?

  15. #15
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 386
    Points
    20 386
    Par défaut
    Citation Envoyé par fantomchris Voir le message
    PS: Un outil sous Windows pour faire quoi?
    >>Panneau configuration>>outils administration>>SOurces de données ODBC si tu ne sais pas

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/08/2009, 08h12
  2. Connexion à MySQL depuis code C++
    Par fantomchris dans le forum Outils
    Réponses: 0
    Dernier message: 29/05/2008, 16h15
  3. connecter à mysql depuis un script php
    Par aroua dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/07/2007, 14h10
  4. [MySQL] Se connecter à MySQL depuis IP externe
    Par monnoliv dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/05/2007, 09h13
  5. Connecter à mysql depuis dw
    Par nixax dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 27/06/2006, 11h49

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