Announcement

Collapse
No announcement yet.

Probleme beim Abfragen von ResultSets

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme beim Abfragen von ResultSets

    Ich habe eine Methode, mit der ich meine Auftragsdaten aus einer Datenbank abfragen und in variablen speichern möchte. <BR><BR>
    <PRE>

    public void Auftragsdaten_erfassen()
    {
    for (int i= 0; i<Teil.length; i++)
    {
    if (Teil[i] !=0)
    {
    try
    {
    // Abfragen
    String erfassen1 = "SELECT Ch_ID FROM eilAuftrag WHERE A_Nr
    ="+Auftrag + " AND T_Nr ="+Teil[i];
    String erfassen2 = "SELECT Schlucht FROM TeilAuftrag WHERE A_Nr
    =" +Auftrag + " AND T_Nr ="+Teil[i];
    String erfassen3 = "SELECT LiRe FROM TeilAuftrag WHERE A_Nr
    ="+Auftrag + " AND T_Nr ="+Teil[i];
    String erfassen4 = "SELECT Etage FROM TeilAuftrag WHERE A_Nr
    ="+Auftrag + " AND T_Nr ="+Teil[i];
    String erfassen5 = "SELECT Hausnr FROM TeilAuftrag WHERE A_Nr
    ="+Auftrag + " AND T_Nr ="+Teil[i];
    <BR><BR>
    Statement stmt = con.createStatement ();
    // Ergebnis der einzelnen Abfragen in Variablen speichern
    <BR><BR>
    ResultSet rs1 = stmt.executeQuery (erfassen1);
    while (rs1.next())
    {
    int Ch_ID = rs1.getInt("Ch_ID");
    System.out.println (" Ch_ID =" + Ch_ID);
    }
    <BR><BR>
    ResultSet rs2 = stmt.executeQuery (erfassen2);
    while (rs1.next())
    {
    int Schlucht_neu = rs2.getInt("Schlucht");
    System.out.println (" Schlucht =" + Schlucht_neu);
    }
    <BR><BR>
    ResultSet rs3 = stmt.executeQuery (erfassen3);
    while (rs1.next())
    {
    String LiRe_neu = rs3.getString("LiRe");
    System.out.println (" LiRe =" + LiRe_neu);
    }
    <BR><BR>
    ResultSet rs4 = stmt.executeQuery (erfassen4);
    while (rs1.next())
    {
    int Etage_neu = rs4.getInt("Etage");
    System.out.println (" Etage =" + Etage_neu);
    }
    <BR><BR>
    ResultSet rs5 = stmt.executeQuery (erfassen5);
    while (rs1.next())
    {
    int Hausnr_neu = rs5.getInt("Hausnr");
    System.out.println (" Hausnr =" + Hausnr_neu);
    }
    <BR><BR>
    Speicherplatz_vorhanden();
    belegt();
    protokollieren (Auftrag, Teil[i], bemerkung);
    }
    catch (SQLException exc )
    {
    System.out.println ("Fehler bei Verarbeitung: " +exc.getMessage());
    bemerkung = "Teilauftrag nicht umgelagert " ;
    }
    }
    }
    }
    </PRE>

    Das Problem ist aber nun, dass er nur das erste ResultSet bearbeitet und aus dieses in der Konsole anzeigt. Warum geht er nicht in alle ResultSet hinein? Wo liegt das Problem?<BR><BR>

    Wer hilft mir?<BR>
    Gruss<BR>
    Karen<BR><BR>

  • #2
    Weil Du beim kopieren aus dem rs1 kein rs2-rs5 gemacht hast, denke ich

    Comment


    • #3
      <HTML>
      <PRE>
      Warum nicht alles in einem Statement?, die where Bedingung ist immer gleich.
      So wie Du es machst muß 5 mal das SQL-Statement geparst werden, so glaub ich ists performanter.
      Gruß Roland.

      // Abfragen
      String erfassen = "SELECT Ch_ID,Schlucht,LiRe,Etage,Hausnr FROM TeilAuftrag "+
      "WHERE A_Nr ="+Auftrag + " AND T_Nr ="+Teil[i];


      Statement stmt = con.createStatement ();
      // Ergebnis der einzelnen Abfragen in Variablen speichern

      ResultSet rs = stmt.executeQuery (erfassen);
      while (rs.next())
      {
      int Ch_ID = rs.getInt(1); //Ch_ID
      int Schlucht_neu = rs.getInt(2); //Schlucht
      String LiRe_neu = rs.getString(3); //LiRe_neu
      int Etage_neu = rs.getInt(4); //Etage_neu
      int Hausnr_neu = rs.getInt(5); //Hausnr_neu

      System.out.println (" Ch_ID =" + Ch_ID);
      System.out.println (" Schlucht =" + Schlucht_neu);
      System.out.println (" LiRe =" + LiRe_neu);
      System.out.println (" Etage =" + Etage_neu);
      System.out.println (" Hausnr =" + Hausnr_neu);
      }


      Speicherplatz_vorhanden();
      ................usw
      </PRE>
      Gruß Roland
      </HTML&gt

      Comment

      Working...
      X