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

MFC Discussion :

[C++] récup BDD ODBC avec CRecordset


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 54
    Par défaut [C++] récup BDD ODBC avec CRecordset
    Bonjour,
    malgré toutes mes recherche dans les docs, j'ai bien réussi à me connecter à la base, à executer des requete, mais je n'arrive pas à extraire des données de la base....

    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
    	// déclaraction de la connexion avec la classe CDatabase
    	CDatabase m_bddMySQL;
    	// overture de la connexion
    	m_bddMySQL.Open("mySQLodbc", FALSE, FALSE, "ODBC;UID=root");
     
    	CRecordset rs(&m_bddMySQL);
    	rs.Open(CRecordset::forwardOnly,"SELECT * FROM initiales",CRecordset::readOnly );
    	if( rs.IsBOF( ) )
    		MessageBox("VIDE","Erreur",MB_ICONASTERISK);
                  // Recordset vide
     
    	while ( !rs.IsEOF( ) ){// défilement du record set
                                   // ?????
    		rs.MoveNext( );
    	}
    Comment récupérer les données d'une colonne?
    J'ai déjà essayer avec GetFieldValue() sans succès

    DOC :
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_MFC_CRecordset.asp

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 54
    Par défaut

    Merde, je me suis trompé de catégorie
    Le boulet.......

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Avec GetFieldValue tu devrais y arriver. Il y a un exemple ici.

    Sinon montre le code qui ne marche pas avec le GetFieldValue et décris le resultat que tu obtiens

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 54
    Par défaut
    Arf, c'est bien ce kil me semblais, mais je ne comprend pas bien cette fonction... Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		CDBVariant temp;
    		rs.GetFieldValue("initiales", temp);
    //initiales est le champ
    Mon problème est la variable temp de la classe CDBVariant, j'ai pas encore réussi à piger ce que c'était rééllement, comment afficher ma variable par la suite? comment la convertir en string ou autre? (j'ai déjà regardé les types VARIANT, mais je pige pas )
    Merci de votre aide

  5. #5
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    CDBVariant est une classe dont les instances peuvent être de plusieurs types différents.

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         CDBVariant temp; 
         rs.GetFieldValue("initiales", temp); 
         // Si tu sais que la colonne initiales est de type chaine de caratère
         temp.m_pstring;
         // Si tu sais que la colonne initiales est de type entier;
         temp.m_lVal
    L'idéal est de récuperer dynamiquement le type de chaque colonnes du resultat de la requête et de faire une instruction switch pour traiter les differents types et utiliser le bon membre de CDBVariant.

    Aide de CDBVariant sur MSDN

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 54
    Par défaut
    Oki, merci bcp c'est réglé 8)

  7. #7
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    De rien. Pense au tag resolu

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

Discussions similaires

  1. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21
  2. Help ODBC avec Mysql
    Par Ashura75013 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/02/2004, 08h11
  3. Réponses: 12
    Dernier message: 02/02/2004, 13h41
  4. Import d'une bdd éloquence avec interbase ou postgresql?
    Par Missvan dans le forum InterBase
    Réponses: 11
    Dernier message: 06/01/2004, 21h44
  5. Réponses: 14
    Dernier message: 01/09/2003, 15h54

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