Query, ListBox , doppelt Einträge



  • Hallo,

    ich mache eine Query Abfrage auf eine Tabelle und da hole ich mir alle Nummern aus der Spalte "Nr" und schreibe diese in eine ListBox.

    while (!Query->Eof)
      {
       nr=(Query->FieldByName("Nr")->AsString);
       ListBox1->Items->Add(nr);
      }
    

    Leider habe ich ggf. Nummern nun doppelt in der ListBox.
    Kann ich die doppelte Einträge in der Query schon abfangen ?

    Oder muss ich eine 2. ListBox haben, damit ich nun durch die 1. durchlaufe und nur die einmal vorkommendenn Einträge rausschreibe ?

    Vielen Dank



  • Hallo

    für MySQL gibt es dafür das Schlüsselwort DISTINCT

    SELECT DISTINCT Nr FROM <tablename>
    

    bis bald
    akari



  • sonst kannst du das auch einfach nach dem querry vor dem reinschreiben in die listbox abfangen

    while (!Query->Eof)
      {
         nr=(Query->FieldByName("Nr")->AsString);
         if (ListBox1->Items->IndexOf(nr) == -1)
         {
             ListBox1->Items->Add(nr);
         }
      }
    


  • Hallo Zusammen,

    beide Möglichkeiten bekomme ich zum laufen, allerdings dauern die ewig (Bei 6 Datensätzen).

    Gibt es hier eine andere Möglichkeit ?



  • Hallo

    das es so lange dauern soll, kann ich mir nicht vorstellen (gerade bei der SQL-Abfrage). Das muß an deiner Verarbeitung liegen. Zeig mal mehr aktuellen Code.
    Ich hoffe mal, das du noch das

    Query->Next();
    

    in der Schleife eingefügt hast? sonst wirds ne Endlos-schleife

    bis bald
    akari



  • kann ich mir auch schlecht vorstellen...
    etwas code würde sicher weiterhelfen


Anmelden zum Antworten