Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Percorrendo o conjunto de resultados


Ao acessar um RDBMS, o ResultSet que você obtém normalmente é orientado a linhas. Ou seja, sempre que você chama ResultSet::next(), o cursor se move para a próxima linha. É por isso que seu laço
for (int i = 0; i < columncount; i++)
{                 
    while (res->next())
    {
        ...
    }
}

está mostrando apenas o primeiro atributo.

Normalmente você alterna loops internos e externos, como
while (res->next())
{
    for (int i = 0; i < columncount; i++)
    {
        ...
    }
}

Mas se você realmente precisar acessar uma coluna por vez, terá que verificar se o ResultSet permite redefinir o cursor para a primeira linha. Caso contrário, você precisa armazenar os dados em cache ou emitir a mesma consulta SQL repetidamente.