sql >> Databasteknik >  >> RDS >> Mysql

Går igenom resultatuppsättningen

När du kommer åt en RDBMS är ResultSet du får vanligtvis radorienterad. Det vill säga, när du anropar ResultSet::next(), flyttar markören vidare till nästa rad. Det är därför din loop

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

visar bara det första attributet.

Normalt byter man inre och yttre slingor som t.ex.

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

Men om du verkligen behöver komma åt en kolumn i taget, måste du kontrollera om ResultSet tillåter dig att återställa markören till den första raden. Om inte måste du antingen cachelagra data eller skicka samma SQL-fråga om och om igen.




  1. openrowset för excel:kan vi hoppa över flera rader?

  2. Datumserie i SQL?

  3. Hur man använder SQL SUM-funktionen

  4. Släpp icke namngivna begränsningar