# resultset problem



## Guest (2. Mrz 2005)

bitte um hilfe, verzweiflung macht sich breit

erklärung code:
mit der ersten select abfrage bekomme ich eine anzahl an kursen, deren ergebnis ich in der variable Kurs_ID zwischenspiechere um diese dann in der nächsten abfrage zu verwenden.

das problem:
wenn ich das bitfeld für den ersten kurs bekommen habe, hüpft er in die oberste while schleife zurück (was er auch soll) um sich die nächste Kurs_ID abzuholen. dafür stellt er wieder eine abfrage was zwangsweise zum gleichen ergebnis wie beim ersten durchlauf führt.
wie ist es mir nun möglich bei beispielsweise 30 Kurs_ID's die ich als ergebnis erhalte nicht immer wieder die erste Kurs_ID zu erhalten, sonder in die nächste zeile des resultset zu hüpfen?


```
rs = stmt1.executeQuery("select kurs_id from jf_kurs k, jahresfahrplan j where (j.fahrplanstart < '" + Datum + "') and (j.fahrplanende > '" + Datum + "') and (fahrplangueltigkeit <= '" + Datum + "') and (j.unternehmen_id = " + Unternehmen_ID + ") and (j.Versionsnummer = '" + Versionsnummer + "') and (j.jahresfahrplan_id = k.jahresfahrplan_id)");
            while (rs.next() ) {
              String Kurs_ID = rs.getString("kurs_id");
              System.out.println("Kurs_ID = " + Kurs_ID);
              rs = stmt.executeQuery("select bitfeld from jf_bitfeld b, jf_kurs k  where (k.bitfeld_id = b.bitfeld_id) and (kurs_id = '" + Kurs_ID + "')");
                if (rs.next()) {
                  String Bitfeld = rs.getString("bitfeld");
                  //überprüfen, ob kurs_id in den tagesfahrplan geschrieben werden darf
               }
          }
        }
```

danke für eure hilfe


----------



## KSG9|sebastian (2. Mrz 2005)

ich versteh nicht so ganz was du willst, aber probier mal das:


```
ResultSet rs = stmt1.executeQuery("select kurs_id from jf_kurs k, jahresfahrplan j where (j.fahrplanstart < '" + Datum + "') and (j.fahrplanende > '" + Datum + "') and (fahrplangueltigkeit <= '" + Datum + "') and (j.unternehmen_id = " + Unternehmen_ID + ") and (j.Versionsnummer = '" + Versionsnummer + "') and (j.jahresfahrplan_id = k.jahresfahrplan_id)"); 
            while (rs.next() ) { 
              String Kurs_ID = rs.getString("kurs_id"); 
              System.out.println("Kurs_ID = " + Kurs_ID); 
              ResultSet rs2 = stmt.executeQuery("select bitfeld from jf_bitfeld b, jf_kurs k  where (k.bitfeld_id = b.bitfeld_id) and (kurs_id = '" + Kurs_ID + "')"); 
                if (rs2.next()) { 
                  String Bitfeld = rs.getString("bitfeld"); 
                  //überprüfen, ob kurs_id in den tagesfahrplan geschrieben werden darf 
               } 
          }
```


----------



## Guest (2. Mrz 2005)

danke,

genau an dem hat es gelegen. ich muss ein neues resultset erschaffen, sonst wird mir ja das alte überschrieben.
naja wie wahr ist der spruch: oft sieht man vor lauter wald die bäume nicht mehr!!!


----------

