title: Why i can't read the next rows in ResultSet
body: <p>I have a problem i'm trying to read another row in my ResultSet but dunno why can't my loop just end at rs.next(). Yes, i got more than 1 rows in tblPracownicy. I check ResultSet content with while(rs.next())system.out.println(rs.getRow(1)) before DO and it look good i got that number of result as much i got rows in tblPracownicy. But in DO loop i didn't know why it won't cycle the loop.  here is the code:</p>
  
  <pre><code>ResultSet rs2 = stat.executeQuery("select _id, cykl_id, CyklDzien, CyklData, DataZatrudnienia, DataZwolnienia from tblPracownicy");
              //wygeneruj harmonogramy dla pracowników
              long prac_id = rs2.getLong(1);
              int offset;
              Cykl cykl = null;
  
              do
              { //pracownicy
                  //odnajdź i pobierz cykl dla pracownika prac_id
                  if (cykl == null || cykl.cykl_id != rs2.getLong(2))
                      for (Cykl c : cykle)
                          if (c.cykl_id == rs2.getLong(2)) 
                          {
                              cykl = c;
                              break;
                          }
                  //ustaw offset cyklu na dzień 1.szy
                  GregorianCalendar gc_cykl = new GregorianCalendar();
                  gc_cykl.setTime(rs2.getDate(4));
                  gc_harm = new GregorianCalendar(rok, miesiac-1, 1);
                  //uwzględnij startowy dzień cyklu = CyklDzien
                  gc_cykl.add(GregorianCalendar.DAY_OF_MONTH, -rs2.getInt(3)+1);
                  offset = (int) ((gc_harm.getTimeInMillis() - gc_cykl.getTimeInMillis()) / (3600000*24)) % cykl.dlugosc;
                  //przelicz offset na dodatni
                  if (offset &lt; 0) offset = cykl.dlugosc + offset;
  
                  GregorianCalendar gc_zatr = new GregorianCalendar(new Integer(rs2.getString(5).substring(0, 4)), new Integer(rs2.getString(5).substring(5, 7)), new Integer(rs2.getString(5).substring(8)));
                  GregorianCalendar gc_zwol = null;
                  //if (!(rs2.getString(6) == null || rs2.getString(6).equals("")))
                  if ((rs2.getString(6) != null &amp;&amp; !rs2.getString(6).equals("")))
                  {
                      gc_zwol = new GregorianCalendar(new Integer(rs2.getString(6).substring(0, 4)), new Integer(rs2.getString(6).substring(5, 7)), new Integer(rs2.getString(6).substring(8)));
                  }
                  //definiuj zmiany pracownika na cały miesiąc
                  for (int dzien=1; dzien &lt;= max; dzien++)
                  { //dni
                      //w dni miesiąca kiedy pracownik nie jest zatrudniony wstawić dni wolne
                      gc_harm.set(rok, miesiac, dzien);
                      if (gc_harm.before(gc_zatr) || (gc_zwol != null &amp;&amp; gc_harm.after(gc_zwol)))  //jesli przed zatrudnieniem lub po zwolnieniu
                      {   //wpisz dzien wolny = niekasowalne godziny 'xx - xx' o id = 0
                          stat.executeUpdate("insert into tblZmiany (Harmonogram_id, dzien, pracownik_id, godziny_id) "
                                  + "values (" + id + ", " + dzien + ", " + prac_id + ", " + 0 + ");");
                      }else{
                          //wpisz zmianę
                          stat.executeUpdate("insert into tblZmiany (Harmonogram_id, dzien, pracownik_id, godziny_id) "
                                  + "values (" + id + ", " + dzien + ", " + prac_id + ", " + cykl.godziny[offset] + ");");
                      }
                      offset++;
                      if (offset &gt;= cykl.dlugosc) offset = 0;
                  }
              }while (rs2.next());
  </code></pre>