romanikou | salut à tous,
je fais une APIwin32 sous VisualC++,
voilà mon problème, je récupère les données d'une table de ma base de données, puis je viens remplir une ListView qui se trouve sur le dialog principal.
Code :
- //////////////////////////////////////////////////
- // On recupere les enregistrements
- while(!pRs->EndOfFile)
- {
- /////////////////////////////////////////////////////////
- // On renseigne lvItem
- lvItem.mask = LVIF_TEXT;
- lvItem.iItem = i;
- /////////////////////////////////////////////////////////
- // On recupere la pièce
- var = pRs->Fields->GetItem("Pièce" )->Value;
- bst = var;
- if(var.vt != VT_NULL)
- {
- lstrcpy(szBuffer, bst);
- lvItem.iSubItem = 0;
- lvItem.pszText = szBuffer;
- SendMessage(GetDlgItem(hwnd, IDC_LIST5), LVM_INSERTITEM, 0, (LPARAM)&lvItem);
- }
- /////////////////////////////////////////////////////////
- // On recupere le type
- var = pRs->Fields->GetItem("n°OF" )->Value;
- if(var.vt != VT_NULL)
- {
- bst = var;
- lstrcpy(szBuffer, bst);
- lvItem.iSubItem = 1;
- lvItem.pszText = szBuffer;
- SendMessage(GetDlgItem(hwnd, IDC_LIST5), LVM_SETITEM, 0, (LPARAM)&lvItem);
- }
- /////////////////////////////////////////////////////////
- // On recupere l'Id
- var = pRs->Fields->GetItem("Id" )->Value;
- if(var.vt != VT_NULL)
- {
- bst = var;
- lstrcpy(szBuffer, bst);
- lvItem.iSubItem = 2;
- lvItem.pszText = szBuffer;
- SendMessage(GetDlgItem(hwnd, IDC_LIST5), LVM_SETITEM, 0, (LPARAM)&lvItem);
- }
- i++;
- pRs->MoveNext();
- }
|
le problème que je rencontre ici est que mon appli permet de modifier, d'ajouter, ou de supprimer des colonnes, donc si par exemple je supprime la colonne n°OF, la syntaxe var = pRs->Fields->GetItem("n°OF" )->Value; ne plus coller.
Donc je voulais savoir s'il était possible de remplacer le nom des colonnes dans cette syntaxe par le numéro de colonne lui-même.
J'ai essayé var = pRs->Fields->GetItem(COLUMN1)->Value;, mais forcément ca ne marche pas!
comment faire??
merci d'avance |