Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ComboBox in DBGrid - Änderungen werden nicht übernommen? (https://www.delphipraxis.net/160919-combobox-dbgrid-aenderungen-werden-nicht-uebernommen.html)

baurat 7. Jun 2011 21:39

Datenbank: MySQL • Version: 5.1 • Zugriff über: Zeos

ComboBox in DBGrid - Änderungen werden nicht übernommen?
 
Hallo zusammen,

ich stehe wohl gerade etwas auf dem Schlauch. Ich hab ein DBGrid, an dem hängt eine (komplexe, dh. über mehrere Tabellen verstreute) Query mit zugehöriger DataSource.
Im Grid erzeuge ich ohne Zauberei in einem berechneten Datenfeld über die PickList eine ComboBox, etwa mit den Werten "ja", "nein", "vielleicht" (werden aus einem anderen Feld aus zb. 0, 1 und 2 erzeugt - allerdings kein Lookup, da es keine so einfache Regel gibt. Die Feldwerte werden bei OnGetText berechnet).
Nach dem Compilieren sehe ich zwar sehr wohl die ComboBox und kann dort auch diese Werte anklicken, allerdings wird die Auswahl nicht übernommen.
Das Grid, die Query sowie das Datenfeld sind read only = false gesetzt.

Hat jemand einen Tipp für mich, was ich falsch mache?

Danke und schöne Grüße
Heiko

jobo 8. Jun 2011 08:36

AW: ComboBox in DBGrid - Änderungen werden nicht übernommen?
 
Ich kenn weder die Zugriffskomponente noch das Verhalten der DB.
In Oracle ist es so, dass die Datenbank "on the fly" entscheidet, ob sie eine komplexe Abfrage überhaupt updaten kann. D.h. es wird geprüft, ob ausreichend PK Infos/ Einduetigkeit für ein Update der Kerntabelle vorliegt.

Einfache Klärung: Sind andere Felder editierbar?

baurat 8. Jun 2011 08:49

AW: ComboBox in DBGrid - Änderungen werden nicht übernommen?
 
Zitat:

Einfache Klärung: Sind andere Felder editierbar?
Ähm.... nein, Euer Ehren! Mist, ist mir vor lauter PickList gar nicht aufgefallen.
Aber was mach ich denn nur?

Hintergrund: in der Query stehen z.B. Adressdaten (Anrede, Str, PLZ+Ort). Was ich über die ComboBox dann eigentlich nur brauche, ist eine Zusatzinformation ("will Extrainfos"), die der Nutzer anklickt und zu jedem Datensatz vorübergehend gespeichert wird und dann in einem QReport weiterverarbeitet wird.

Ideen?

Danke!

jobo 8. Jun 2011 10:15

AW: ComboBox in DBGrid - Änderungen werden nicht übernommen?
 
1. Du machst die Query updatable. Kann Dir leider nicht sagen, was mySQL dazu braucht. Aber ohne Primary Key Zugriff geht’s sicher nicht. Ob die ZEOS Kompos dann der gleichen Meinung sind wie die DB weiß ich auch nicht.
Wenn Du etwas experiemtieren willst, fang mit einer Query auf die Kerntabelle an. Dann kannst Du solange die Komplexität erhöhen, bis es nicht mehr updatable ist. Group by Selects oder denormalisierte Ergebnisse sollten in jedem Fall vermieden werden.
2. Wir verwenden Komponenten, die es neben dem Standardzugriff erlauben, explizite SQL Anweisungen für Insert/Update/Delete anzugeben (directSQL). Das könnte Dir auch helfen, hängt aber wiederum von den Möglichkeiten von ZEOS ab.

Hier gibt es sicher mySQL und ZEOS Fachleute, die das genau wissen, ob man das in Deinem Fall auch machen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 Uhr.

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