Bij toegang tot een RDBMS is de ResultSet die u krijgt meestal rijgericht. Dat wil zeggen, wanneer u ResultSet::next() aanroept, gaat de cursor naar de volgende rij. Dat is de reden waarom je lus
for (int i = 0; i < columncount; i++)
{
while (res->next())
{
...
}
}
toont alleen het eerste kenmerk.
Normaal gesproken wissel je binnen- en buitenlussen zoals
while (res->next())
{
for (int i = 0; i < columncount; i++)
{
...
}
}
Maar als u echt één kolom tegelijk wilt openen, moet u controleren of u met de ResultSet de cursor naar de eerste rij kunt terugzetten. Als dat niet het geval is, moet u ofwel de gegevens in de cache plaatsen of dezelfde SQL-query steeds opnieuw uitvoeren.