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:
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);
} |
Re: nombre de lignes d'une table de ma BD
Citation:
Envoyé par manikou
...
Code:
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:
Count = pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;
Re: nombre de lignes d'une table de ma BD
Citation:
Envoyé par manikou
...
Code:
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:
bstc = pRs->Fields->GetItem(_bstr_t("]NbrLignes"))->Value;