Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Daten aus DBComboBox werden nicht in DB geschrieben (https://www.delphipraxis.net/192037-daten-aus-dbcombobox-werden-nicht-db-geschrieben.html)

Ykcim 15. Mär 2017 14:36

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:
Combo_Oberfl.DataSource:=MySQL.DS_Position;
Combo_Oberfl.DataField:='oberflaeche';
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?

Vielen Dank.
Patrick

Uwe Raabe 15. Mär 2017 14:59

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.

Ykcim 15. Mär 2017 15:18

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

Jumpy 15. Mär 2017 15:40

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?

Uwe Raabe 15. Mär 2017 15:45

AW: Daten aus DBComboBox werden nicht in DB geschrieben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Ykcim (Beitrag 1364301)
EIN BESPIEL MIT " In-Memory ClientDataSet" BEKOMME ICH LEIDER NICHT HIN - NOCH NIE MIT GEARBEITET...

Keine Panik! Ich habe da mal auf die Schnelle was zusammengeklickt. Das kannst du ja als Basis nehmen.

Ykcim 15. Mär 2017 15:47

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...

Ykcim 15. Mär 2017 15:53

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)...

Uwe Raabe 15. Mär 2017 15:58

AW: Daten aus DBComboBox werden nicht in DB geschrieben
 
Zitat:

Zitat von Ykcim (Beitrag 1364311)
Leider bekomme ich eine Fehlermeldung beim Öffnen (siehe Anhang)...

Das hatte ich befürchtet, da ich das Beispiel mit Berlin erstellt hatte (habe gerade kein XE5 zur Hand).

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.

mkinzler 15. Mär 2017 16:03

AW: Daten aus DBComboBox werden nicht in DB geschrieben
 
das Gegenstück bei UniDAC wäre ein
Delphi-Quellcode:
TVirtualDataSet

Ykcim 15. Mär 2017 16:21

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 20:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz