När du kommer åt en RDBMS är ResultSet du får vanligtvis radorienterad. Det vill säga, när du anropar ResultSet::next(), flyttar markören vidare till nästa rad. Det är därför din loop
for (int i = 0; i < columncount; i++)
{
while (res->next())
{
...
}
}
visar bara det första attributet.
Normalt byter man inre och yttre slingor som t.ex.
while (res->next())
{
for (int i = 0; i < columncount; i++)
{
...
}
}
Men om du verkligen behöver komma åt en kolumn i taget, måste du kontrollera om ResultSet tillåter dig att återställa markören till den första raden. Om inte måste du antingen cachelagra data eller skicka samma SQL-fråga om och om igen.