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 :

nombre d'enregistrement


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut nombre d'enregistrement
    salut,
    j'ai une bas e de donnée dans la quelle j ai une table qui contient 3 enregistrements.
    le probleme c'est qd j ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CString Requete2="SELECT * FROM USers WHERE Nom='BLABLA' ";
    m_pSet->m_pDatabase->ExecuteSQL(Requete2);
    m_OLO=m_pSet->GetRecordCount();
    UpdateData(false);
    dans la variable m_OLO je recupere "1" alors q'elle me doit affichier le nombre "3".
    y a til une explication ?
    dans ma table les 3 enregistrements porte le champ Nom=BLABLA

  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 faut toujours tester le retour d'une fonction ou un try catch pour verifier les eventuelles erreurs.

  3. #3
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    mais bon est ce que ma requete pourra me retourner des enregistrements comme resultats ou non, si j'utilise le catch()??

    comme j'ai dis je voudrais ke ma requette SELECT me retourne un resultat or ds MSDN il estr ecrit qur ExecuteSQL() ne retourne pas un resultat.

    je suis perdu ici !!

  4. #4
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    re salut, j ai un prob dans ma focbtion maintenant!!
    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
    16
    17
    18
    19
    20
    21
     
    void CFindView::OnCommit() 
    {
        // TODO: Add your control notification handler code here
    CString Requete ="UPDATE USers SET Nom='SCHEHAIDER'";
    CString Requete2="SELECT * FROM USers WHERE Nom='SCHEHAIDER'";
    TRY
    {
    m_pSet->m_pDatabase->ExecuteSQL(Requete2);
    m_OLO=m_pSet->GetRecordCount();
    UpdateData(false);
    }
     
    CATCH(CDBException, e)
    {
    int var = e->m_nRetCode;
    CString str;
    str.Format("%d",var);
    MessageBox(str);
    }
    }
    message d'erreur :
    C:\Documents and Settings\torNAdE\Bureau\MAN\ROT\FindView.cpp(135) : fatal error C1004: unexpected end of file found

    Cest où le prob le nbr de parenthese est correcte

  5. #5
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    eh bien j ai trouvé j ai oublie le END_CATCH

    mais le probleme de nombre d'enregistrement persiste encore
    koi faire svp

  6. #6
    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
    e est de type CDBExceptin donc il faut écrire :

  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
    Autant pour moi, c'était un CATCH et pas un catch

  8. #8
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    est ce quelqu'un connait une autre commande pour executer la requete SQL et avoir l'ensemble des enregistrements en retour

  9. #9
    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
    Il faut une boucle avec movenext pour parcourir tout le recordset. Le getrecordcount n'aura une valeur exact qu'après.
    Cfr MSDE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The total number of records is only known after the user has moved beyond the  last record

  10. #10
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    eh bien ce n'est pas le cas car si j'utilise m_pSet->MoveNext(); cette instruction va operer sur tous l'ensemble d'enregistrement de ma table et non pas sur les enregistrements ke je dois recuperer car comme j'ai deja dit je ne peut pas avoir de resultat avec ExecuteSQL().

    y a til pas une autre methode??

  11. #11
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    Bon je penses ke mon prob ca vs depasse ou ke j ai mal posé mes question mais bon maintenant je pense ke je vais utiliser DAO et non pas le ODBC mais est ce que je pourra acceder à ma base sachant que je l'ai ajouter dans l'administrateur ODBC de Microsoft. ??

  12. #12
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    utilise ADOLib.h c'est 10000000 fois plus simple en plus DAO c'est assez vieux.

  13. #13
    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
    Tu peux aussi utiliser un autre recordset initialisé avec m_pDatabase, dans l'open du Recordset tu mets ton query.
    Maintenant, si tu veux connaitre le nbre de record que renvoie ton query, tu fais d'abord count(*)...
    Maitenant c'est à toi de voir...

  14. #14
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    Citation Envoyé par GP77
    Tu peux aussi utiliser un autre recordset initialisé avec m_pDatabase, dans l'open du Recordset tu mets ton query.
    Maintenant, si tu veux connaitre le nbre de record que renvoie ton query, tu fais d'abord count(*)...
    Maitenant c'est à toi de voir...
    et comment puis je faire ca ?

    est ce ke je cree une autre classe de CRecordset et je lui passe ds GetDefaultSql ma requete ou koi ?

  15. #15
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    Citation Envoyé par moulefrite
    utilise ADOLib.h c'est 10000000 fois plus simple en plus DAO c'est assez vieux.
    J ai pas pu le trouver de ADOlib.h

  16. #16
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CDBVariant dbv;
    CRecordset rs(m_pSet->m_pDatabase);
    if(rs.IsOpen())
        rs.Close();
      rs.Open(AFX_DB_USE_DEFAULT_TYPE, requete);
    //OU
    //  rs.Open(AFX_DB_USE_DEFAULT_TYPE, requete2);
    rs.GetFieldValue((short)0,dbv);
    ...
    A peu chose près ça ressemble à ce code...

  17. #17
    Membre éclairé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2004
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 452
    Par défaut
    tien tu trouvera cette librairie ici :
    http://www.developpez.biz/downloads/...ces/ADOlib.zip


  18. #18
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    Merci à tous les deux
    je vais essayer d'utiliser la solution de GP77 si elle ne me resoud rient j aurai recours à la deuxieme solution.
    MErci une autre fois.

  19. #19
    Membre éclairé Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Par défaut
    Esperons ke Gp77 ou quelqu'un dautre auraune reponse à cette erreur.
    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
    16
     
    void CFindView::OnCommit() 
    {
        // TODO: Add your control notification handler code here
    CString Requete ="UPDATE USers SET Nom='SCHEHAIDER'";
    CString Requete2="SELECT * FROM USers WHERE Prenom='Laila'";
    CDBVariant dbv;
    CRecordset rs(m_pSet->m_pDatabase);
    if(rs.IsOpen())
       rs.Close();
      rs.Open(AFX_DB_USE_DEFAULT_TYPE, Requete2);
    int var= rs.GetRecordCount();   
    CString str;
    str.Format("%d",var);
    MessageBox(str);
    }
    quand j execute et je clique sur le boutton commit j ai cette erreure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    aucune colonne n'a ete liée avant l'appel à SQlFetchScroll/SQLExetendedFetch

  20. #20
    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
    Sur quelle ligne ??? Sur l'open ?
    Attention que denouveau, tu ne parcoures pas ton recordset avant de faire ton get recordCount().
    Esssaie de faire un rs.MoveLast();
    Sinon essaie aussi de spécifier un nom de champ plutot que l' *.

Discussions similaires

  1. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 09h51
  2. Réponses: 4
    Dernier message: 29/05/2004, 14h29
  3. Limiter le nombre d'enregistrement
    Par BXDSPORT dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2004, 16h26
  4. [débutant] Limitation du nombre d'enregistrement renvoyé
    Par tmcgrady dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2003, 09h41
  5. XMLGram et nombre d'enregistrements par page
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 7
    Dernier message: 26/02/2003, 12h35

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