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 de lignes d'une table de ma BD


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut nombre de lignes d'une table de ma BD
    salut tout le monde, voilà j'ai fait un petit bout de code dans mon APIwin32 (VisualC++ et j'utilise ADO pour la gestion de la BD) me permettant normalement de récupérer le nombre de lignes d'une table Cycles, et mettant ce nombre dans une boite de dialogue IDC_EDITCOUNT. Le problème est que cela ne marche pas et je ne vois pas pourquoi!!
    En fait ce que je trouve dans ma boîte de dialogue, c'est : "SELECT COUNT(*) FROM Cycles". Si vous pouviez me dire ce qui ne va pas, ca m'aiderait bcp.
    merci

    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
    22
    23
    24
    25
     
    wsprintf(szBuffer, "SELECT COUNT(*) FROM Cycles");
    _variant_t Count;
    _bstr_t bstc;
    try 
    {
                    if(pRs->State != adStateClosed)
    	pRs->Close();
    	pRs->Open(szBuffer, _variant_t((IDispatch *) pConn, true), adOpenDynamic, adLockReadOnly, adCmdText);
    }
    catch(_com_error &e) 
    {
    	MessageBox(hwndDlg, e.Description(), "Erreur ExecuteRequete.", MB_ICONEXCLAMATION);
    	return FALSE;
    }
    if(pRs->EndOfFile)
    	return TRUE;
    Count = pRs->GetFields()->GetCount(); 
    Count = bstc;
    if(Count.vt != VT_NULL) 
    {
    	Count = bstc;
    	lstrcpy(szBuffer, bstc);
    	SetWindowText(GetDlgItem(hwndDlg, IDC_EDITCOUNT), szBuffer);
    }

  2. #2
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut Re: nombre de lignes d'une table de ma BD
    Citation Envoyé par manikou
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	...
    Count = pRs->GetFields()->GetCount();
    GetFields()->GetCount() te sert à récupérer le nombre de colonnes de ta requetes et pas le nombre de lignes.

    Moi je ferai "SELECT COUNT(*) FROM Cycles AS NbrLignes", et ensuite je récupèrerai la valeur du champ, "NbrLignes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Count = pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;

  3. #3
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut Re: nombre de lignes d'une table de ma BD
    Citation Envoyé par manikou
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Count = bstc;
    if(Count.vt != VT_NULL) 
    {
    	Count = bstc;
    	lstrcpy(szBuffer, bstc);
    	SetWindowText(GetDlgItem(hwndDlg, IDC_EDITCOUNT), szBuffer);
    }
    De plus ça me parait bizarre, moi je ferai plutot ou directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bstc = pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    merci pour ta réponse, mais malgré que je n'ai pas d'erreur lors de la compilation, j'ai un message lorsque j'exécute l'opération qui me permet de récupérer ce nombre. Le problème vient en fait de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;
    .
    J'ai un Debug Error Abnormal Program Termination. Je ne vois toujours pas ce qui ne vas pas.
    Petite question, à quoi sert le " ] " avant NbrLignes.

  5. #5
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    j'ai fais une erreur de frappe, c'est pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pRs->Fields->GetItem(_bstr_t("NbrLignes"))->Value;
    y 'as un crochet en trop...autrement dis il sert à rien...

Discussions similaires

  1. Afficher nombre de lignes d'une table située sur une autre feuille
    Par nemone dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 08/12/2006, 16h28
  2. Réponses: 11
    Dernier message: 20/10/2006, 12h16
  3. Réponses: 6
    Dernier message: 21/04/2006, 11h22
  4. Réponses: 8
    Dernier message: 20/06/2005, 15h10
  5. determination le nombre de ligne d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 09h25

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