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 confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    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
    Points : 17 323
    Points
    17 323
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  4. #4
    Membre habitué 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
    Points : 131
    Points
    131
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    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 habitué 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
    Points : 131
    Points
    131
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    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