Seite 1 von 1

QComboBox hat doppelte Einträge unsortiert vorliegen

Verfasst: 18. Februar 2007 16:15
von sea_bear
Moin moin!

Ich versuche eine QComboBox mit Werten aus einer Datenbank zu füllen, was auch soweit sehr gut klappt. Leider habe ich nun zwei kleine Problme.

1. Ich bekomme doppelte Einträge in meine ComboBox obwohl ich augenscheinlich dies deaktiviert habe

Code: Alles auswählen

 authorBox->setDuplicatesEnabled(FALSE);
2. Meine Einträge werden so wie ich sie eingetragen habe auch wieder angezeigt. Gibt es aber eine Möglichkeit die Liste, sprich die ComboBox zu sortieren?

mfg
Tobias

Nachtrag:

Ich habe jetzt eine QStringList erstellt und erst einmal dort alle Einträge aus der Datenbank hingeschrieben. Danach habe ich die QStringList mit

Code: Alles auswählen

authorList->sort();
sortiert und mit

Code: Alles auswählen

authorBox->addItems(authorList)
übernommen.
Jetzt ist zumindestens die Liste schon einmal sortiert. Trotzdem habe ich nach wie vor das Problem, dass die Einträge doppelt vorliegen.

Wäre um jede Idee Dankbar.

Verfasst: 18. Februar 2007 19:55
von upsala
Bekommst du die doppelten Einträge von der Usereingabe oder von der Datenbank? Wenn von der Datenbank, dann ist es deine Aufgabe die doppelten Einträge herauszufiltern (Macht die DB inkl. Sortierung wenn man es vorgibt)

Verfasst: 18. Februar 2007 20:04
von sea_bear
upsala hat geschrieben:Bekommst du die doppelten Einträge von der Usereingabe oder von der Datenbank? Wenn von der Datenbank, dann ist es deine Aufgabe die doppelten Einträge herauszufiltern (Macht die DB inkl. Sortierung wenn man es vorgibt)
Die Daten kommen von meiner Datenbank. Leider ist es so, dass ich ungefähr 8 QComboBoxen zu befüllen habe. Ich befürchte nun einfach, dass wenn ich die Datenbank nun für jeden einzelnen Eintrag auf schon vorhandene Einträge überprüfe, dass das einfach zu langsam wird. Es muss aber doch eine Möglichkeit geben, die QComboBox mit einfachen Mitteln zu überprüfen ob ein Eintrag schon vorhanden ist. Hier meine ich eine schnelle und sauber Lösung.

Tobias

Verfasst: 18. Februar 2007 20:14
von Christian81
Wie wäre es, dein select korrekt zu bauen und schon dort die doppelten Einträge rauszufiltern?

Verfasst: 18. Februar 2007 20:37
von upsala
Wenn du in deiner ComboBox bereits Daten hast und über diese deine Datenbankdaten legst würde ich ein eigenes Model mit sortierten Daten vorschlagen. Ansonsten gibt es in SQL DISTINCT, GROUP BY und ORDER, aber das sind SQL-Grundlagen und haben hier eigentlich nichts zu suchen...

Verfasst: 18. Februar 2007 20:45
von sea_bear
upsala hat geschrieben:Wenn du in deiner ComboBox bereits Daten hast und über diese deine Datenbankdaten legst würde ich ein eigenes Model mit sortierten Daten vorschlagen. Ansonsten gibt es in SQL DISTINCT, GROUP BY und ORDER, aber das sind SQL-Grundlagen und haben hier eigentlich nichts zu suchen...
Na ja, es geht mir eigentlich nicht darum woher die Daten kommen, sondern wie ich die Einträge behandeln kann. Daher ist es eigentlich auch egal ob sie aus einer Datenbank, einer Textdatei oder sonst einer Datei kommen. SQL ist mir durchaus ein Begriff, nutzt mir aber in dem Fall nicht unbedingt etwas.

Meine Frage bezog sich daher eigentlich darauf, ob es eine Möglichkeit gibt die Daten auf doppelte Einträge zu überprüfen oder eben bei der Eingabe "QComoBox.addItems(QStringList)" zu verhindern.

Tobias

Verfasst: 18. Februar 2007 21:07
von upsala
Schön, dann ließ meinen ersten Satz nochmal...