Prüfung auf Doppelte Einträge
-
Ja soviel weiß ich auch schon.

Aber wie stell ich das am besten an. Ich hab mir überlegt jedesmal alles in ein Array zu schmeissen und dann immer vor dem Löschen oder schreiben zu gucken ob sich der string im Array befindet.... gibts da ne elegantere Lösung?
N00b grüße
-
Hallo
nein, eine Abfrage. Du schreibst die Werte der ComboBox ja in ein Feld einer Tabelle. Also machst in der Button-Methode noch vor dem Einfügen eine Überprüfung mit einer weiteren TQuery, die einfach mittels "SELECT <field> FROM <table> WHERE <field> = '<Value>'". Aus dem Ergebnis dieser Abfrage brauchst du nur den RecordCount. Ist der nicht 0, gibt es bereits einen Eintrag mit dem Wert, und du kannst die Button-Methode mit einer Fehlermeldung abbrechen.
bis bald
akari
-
wieso ein extra Array? die ComboBox hat doch schon eines
ComboBox->Items->Strings[Index]und die Klasse TStrings besitzt eine Eigenschaft IndexOf, d.h sobald der User einen Eintrag in die Combobox macht schaust du mit IndexOf nur noch ob der schon existiert
-
Hallo
@Linnea : du hast es auch erstmal falsch verstanden. Nicht um die ComboBox geht es, sondern um die Daten die in dem DBGrid angezeigt werden. Das heißt jeder Wert aus der ComboBox soll nur einmal in den Daten des DBGrids auftauen. Deshalb muß die Datenbank überprüft werden, nicht die ComboBox.
bis bald
akari
-
Hohoho langsam. Ich benütz die TQuery nicht. Nur die DataSource TTable und DBGrid. Das mit der TQuery sieht verdammt kompliziert aus und ich hab schon genug probleme...

Dein Post versteh ich nicht Linnea. Es soll überprüft werden ob IN DER TABELLE schon das gewählte Item ist. Nicht anders herum. Oder hab ich da was falsch verstanden?
Danke
-
Hallo
TQuery zu benutzen ist kein Problem, du solltest aber SQL-Grundkenntnisse besitzen. Geh mal in die bCB-Hilfe unter TQuery::SQL, dort ist ein Minimal.Beispiel.
bis bald
akari
-
Puh das wirft mich ja wieder ganz schön weit zurück..... ich meld mich bestimmt wieder.
Danke für die Hilfe

-
Hallo
anderer Ansatz
mach das Feld in dem keine doppelten Eintraege stehen duerfen "unique"
und fang den Fehler beim schreiben ab und bring eine MeldungMfG
Klaus
-
Ja danke ich versuchs. Zur Not nehm ich einfach ein Array welches gleichzeitig abgefragt wird. Sollte es zur übereinstimmung kommen bring ich die Fehlermeldung. Ansonsten is ja ok.
Danke und Bahala NA!
-
also nur damit ich das recht verstehe:
du hast eine Combobox 1 die mit Daten aus einer Datenbank gefüttert wurde, dann wählt der User Einträge aus dieser Combobox 1 aus welche dann in eine Combobox 2 übertragen werden und du willst jetzt, dass der User nicht 2- oder mehrfach einen Eintrag aus ComboBox 1 in Combobox 2 schreibt, richtig?
wenn das so stimmt müßtest du die Einträge aus ComboBox 1 ja irgendwie in ComboBox 2 schreiben und in diesem Moment mußt du einfach nur prüfen ob der Eintrag in ComboBox 2 bzw. in deiner Datenbank, z.B. mit FindKey von TTables
-
Hallo
@Linnea : nein, es gibt nur ein ComboBox

lies dir am besten nochmal den zwieten Post von Croatiancow durch, da hab ichs verstanden.
bis bald
akari