Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Durchlaufen der Ergebnismenge

Beim Zugriff auf ein RDBMS ist das Ergebnisset, das Sie erhalten, normalerweise zeilenorientiert. Das heißt, immer wenn Sie ResultSet::next() aufrufen, springt der Cursor in die nächste Zeile. Deshalb Ihre Schleife

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

zeigt nur das erste Attribut an.

Normalerweise vertauschen Sie innere und äußere Schleifen wie zum Beispiel

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

Aber wenn Sie wirklich auf jeweils eine Spalte zugreifen müssen, müssen Sie prüfen, ob das ResultSet Ihnen erlaubt, den Cursor auf die erste Zeile zurückzusetzen. Wenn nicht, müssen Sie die Daten entweder zwischenspeichern oder immer wieder dieselbe SQL-Abfrage ausführen.