![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Daten aus DBComboBox werden nicht in DB geschrieben
Hallo Zusammen,
ich habe eine DBComboBox, in der die Daten aus einem Datensatz angezeigt werden. Ich möchte, dass der User einen Eintrag auswählen kann, oder einen anderen Wert reinschreibt. Das klappt auch soweit. Aber wenn ich dann den Datensatz speichern möchte, dann wird die Änderung nicht mit übernommen.
Delphi-Quellcode:
Das habe ich bei allen DBComboBoxen. Bestehende Datensätze werden dort angezeigt, aber Änderungen werden nicht übernommen. Bei DBEdit-Felder funktioniert das so wunderbar, daher gehe ich davon aus, dass ich etwas falsch mache. Kann mir jemand einen Tip geben?
Combo_Oberfl.DataSource:=MySQL.DS_Position;
Combo_Oberfl.DataField:='oberflaeche'; Vielen Dank. Patrick |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Mach doch mal ein kleines Beispiel - am besten mit einem In-Memory ClientDataSet, da ja nicht jeder deine DAC-Komponenten und schon gar nicht deine Datenbank hat.
|
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Das mit dem Beispiel muss ich mir gleich mal ansehen, wie ich das mache...
Ich habe erst einmal herausgefunden, dass wenn ich die Oberfläche in der ComboBox auswähle und in ein DBEdit schreibe, bevor ich es abspeicher, dann wird sie in die Datenbank geschrieben, aber ich der ComboBox beim Aufruf nicht angezeigt. Schreibe ich die Daten in die ComboBox (also nicht auswählen), werden die Daten auch gespeichert und auch in der ComboBox angezeigt... Irgendwie sieht das komisch aus... Wenn ich das Ganze ohne das DBEdit versuche, wird gar kein Wert übertragen. Ich habe fast den Eindruck, dass eine andere Information aus der ComboBox an die Query übertragen wird. Hat jemand mal ein einfaches Beispiel, wie eine ComboBox mit einer Query verheiratet. Ich mache das nicht via Drag&Drop über das Form, sondern erstelle die Datenbank-Komponenten erst zur Laufzeit und verbinde die auch erst zur Laufzeit mit den Edits/Combos (wie oben beschrieben...). EIN BESPIEL MIT " In-Memory ClientDataSet" BEKOMME ICH LEIDER NICHT HIN - NOCH NIE MIT GEARBEITET... Vielen Dank Patrick |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Du könntest in dem Fall ja mal den kompletten Code zeigen, wie die Combobox erzeugt und verdrahtet wird.
Davon ab bei ADO (Unidac kenn ich nicht) ist das so, das man da gelegentlich auch mal ein Post-Befehl abschicken muss, damit die Änderungen in der DB gespeichert werden. Fehlt da sowas vielleicht? |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Den Post-Befehl habe ich und der wird auch ausgeführt.
Was den Code angeht, die beiden Zeilen sind schon alles, wie ich die ComboBox verdrahte - die erstelle ichnämlich nicht zur Laufzeit, sondern nur die Query, Connetion etc. Wie gesagt, die ganzen DBEdit-Felder klappen auch wunderbar, nur die DBComboFelder nicht. Ich nutze die ADVDBComboBoxen und ich habe gerade festgestellt, dass die bei den Items einen "DisplayValue" und einen StoredValue haben und nur der "StoredValue" in die Datenbank geschrieben wird. Damit versuche ich es jetzt mal weiter... |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Liste der Anhänge anzeigen (Anzahl: 2)
NETT VON DIR!!!
Leider bekomme ich eine Fehlermeldung beim Öffnen (siehe Anhang)... |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Zitat:
Wenn du die Meldung übergehst, müsste trotzdem das Form korrekt sein. Lediglich die Daten werden fehlen. Wenn du dann das Kontextmenü des ClientDataSet anklickst und dort "Aus MyBase-Tabelle laden..." auswählst, kannst du die Datei country.xml aus den Delphi Beispielen unter Samples\Data laden. Damit sollte alles wieder im grünen Bereich sein. |
AW: Daten aus DBComboBox werden nicht in DB geschrieben
das Gegenstück bei UniDAC wäre ein
Delphi-Quellcode:
TVirtualDataSet
|
AW: Daten aus DBComboBox werden nicht in DB geschrieben
Ok, ich habe es mit der country.xml ans Laufen bekommen. So, wie Du es dort gemacht hast, wollte ich es auch tun.
Das Problem scheint die TAdvDBComboBox zu sein. Sie hat halt die beiden Werte "DisplayValue" und "StoredValue". Der "DisplayValue" wird im ComboAuswahlMenü angezeigt und der "StoredValue" wird in die Datenbank geschrieben... Wenn ich den "StoredValue" auch befülle, bekomme ich die Daten in die Datenbank geschrieben. In Deinem Test-Projekt wird der geschriebene Datenbank-Wert dann auch korrekt wieder in der ComboBox angezeigt, in meinem echten leider nicht... Auch kann ich noch nicht in dem Test-Projekt einen Freitext abspeichern. Also einen nicht in den Items hinterlegten Wert kann ich zwar schreiben, er wird aber nicht gespeichert. Ist das schwierig...:cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz