Prüfung auf Doppelte Einträge



  • Hallo

    achso.
    na dann must du eben im Hintergrund eine weitere Abfrage machen, die den ausgewählten Ausdruck in der Zieltabelle sucht, und bei Erfolg die Auswahl verhindert.

    bis bald
    akari



  • 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

    😞


  • Mod

    Hallo

    anderer Ansatz

    mach das Feld in dem keine doppelten Eintraege stehen duerfen "unique"
    und fang den Fehler beim schreiben ab und bring eine Meldung

    MfG
    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


Anmelden zum Antworten