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 :

Pb de select avec objet CRecordSet


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut Pb de select avec objet CRecordSet
    Bonjour, j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       CDatabase d;
       d.OpenEx ("DSN=STTRTest",0); 
       r.Open (CRecordset::dynaset, "SELECT * FROM SESSIONHTTP", 0);
       long lnbel = r.GetRecordCount ();
    Ma connexion à la db est bonne, ma table existe bien, j'ai fait le test avec un nom de table bidon et le open me renvoie une erreur.
    Par contre, la valeur de lnbel vaut 1 alors que j'ai 3 enregistrements dans la base. Je regarde en debug et la valeur de m_nResultCols (nombre de colonnes de la table) est correct.
    Question : faut-il faire un fetch ?
    D'après la doc que j'ai vue, il suffit de faire un "Select ...", tout est mis dans le Recordset et il n'y a plus qu'à naviguer dans le RecordSet pour trouver les données.
    Merci

    PS : si je remplace CRecordset::dynaset par CRecordset::snapshot, j'ai l'erreur suivante quand je fais le r.Open :{"Fonction optionnelle non installée "}, une idée d'où ça peut venir ? Dans le paramétrage ODBC ?
    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    il me sembe que ton open n'est pas complet :
    exemple:
    http://www.developpez.net/forums/vie...093309#2093309

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Merci mais même en changeant le Open, j'ai toujours un seul enregistrement retourné

  4. #4
    Membre éprouvé Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Attention que GetRecordCount n'est pas fiable...
    Je te conseille de faire une boucle avec un movenext() jusqu'au EOF()...
    Tu verras que ton code est bon

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Merci, je viens de faire avec le !eof, ça tourne, le GetRecordCount est effectivement une méthode qui sert apparement à rien.

  6. #6
    Membre éprouvé Avatar de GP77
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Le GetRecordCount est fiable à partir du moment où tout le recordset a déjà été parcouru !
    Donc une fois la boucle faite, si tu fais un get recordcount, il te donneras le bon résultat ! Haaaa Mircrosoft

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Exact, sur l'aide MSDN, c'est indiqué :
    The total number of records is only known after the user has moved beyond the last record
    Merci Microsoft de nous faire des SDK xml qui marchent pas, des Mobile 5 sans outil et du IIS tout pourri

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/08/2011, 18h42
  2. [Débutant] Récupérer les résultats d'un SELECT avec l'objet DataReader
    Par zayoub dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/07/2011, 21h07
  3. [AJAX] XMLHttpRequest avec select et objet Option
    Par renaud26 dans le forum AJAX
    Réponses: 36
    Dernier message: 05/03/2010, 08h34
  4. pb de select avec size avec choix multiple
    Par La_picolle dans le forum ASP
    Réponses: 10
    Dernier message: 28/08/2003, 15h21
  5. requete SELECT avec un nombre constant
    Par gurumeditation dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/07/2003, 20h04

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