Mysql
 sql >> Base de données >  >> RDS >> Mysql

Boucler dans le jeu de résultats

Lorsque vous accédez à un SGBDR, le ResultSet que vous obtenez est généralement orienté ligne. C'est-à-dire que chaque fois que vous appelez ResultSet::next(), le curseur passe à la ligne suivante. C'est pourquoi votre boucle

for (int i = 0; i < columncount; i++)
{                 
    while (res->next())
    {
        ...
    }
}

n'affiche que le premier attribut.

Normalement, vous permutez les boucles intérieures et extérieures telles que

while (res->next())
{
    for (int i = 0; i < columncount; i++)
    {
        ...
    }
}

Mais si vous avez vraiment besoin d'accéder à une colonne à la fois, vous devrez vérifier si le ResultSet vous permet de réinitialiser le curseur sur la première ligne. Sinon, vous devez soit mettre les données en cache, soit émettre la même requête SQL encore et encore.