Mysql
 sql >> Database >  >> RDS >> Mysql

Scorrendo il set di risultati

Quando si accede a un RDBMS, il ResultSet che si ottiene è in genere orientato alla riga. Vale a dire, ogni volta che chiami ResultSet::next(), il cursore si sposta sulla riga successiva. Ecco perché il tuo ciclo

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

mostra solo il primo attributo.

Normalmente cambi loop interno ed esterno come

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

Ma se hai davvero bisogno di accedere a una colonna alla volta, dovrai controllare se ResultSet ti consente di reimpostare il cursore sulla prima riga. In caso contrario, è necessario memorizzare nella cache i dati o eseguire la stessa query SQL più e più volte.