Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Livebindings Eintrag von TComboBox zur DB von String in integer ändern (https://www.delphipraxis.net/209127-livebindings-eintrag-von-tcombobox-zur-db-von-string-integer-aendern.html)

Peter-Pascal 30. Okt 2021 15:06

Datenbank: SQLite • Version: 3.0 • Zugriff über: LiveBindings

Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
Hallo,

ich versuche gerade mit Livebings eine SQlite DB zu füllen, weil es eigentlich so einfach sein soll. Nun denn... man muss schon einiges ausprobieren.

Nun zu meinem Problem:
Die ComboBox zeigt string Werte an. Für jeden String habe ich einen Integer zugeordnet. Gibt es eine Möglichkeit den String-Wert vor dem Eintragen in die DB in Integer zu ändern und beim Auslesen wieder zurück zum String Wert?

Danke für eure Hilfe und Entschuldigung, ich weiß nicht, ob ich in dieser Rubrik richtig bin.

Gruß Peter

Peter-Pascal 5. Nov 2021 08:37

AW: Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
Hallo,

bislang habe ich keine brauchbare Lösung gefunden String beim Speichern in integer umzuwandeln und wieder zurück. Vermutlich werde "per Hand" die Daten schreiben.

Ist meine Einschätzung richtig, dass Livebindings nur in trivialen Fällen genutzt wird?

Bruß Peter

Jumpy 5. Nov 2021 10:54

AW: Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
Wäre das nicht eher was für eine TLookupCombobox oder wie die heißt?

Peter-Pascal 5. Nov 2021 12:19

AW: Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
soweit ich weiß gibt es die LookupComboBox nur bei VCL. Bei FMX kann man in der TFDTable oder im TField die LookupDaten eintragen.
Aber würde sowieso nicht funktionieren, denn die Werte werden nicht aus einer anderen Tabelle gelesen, sondern kommen aus einer Menge.
Es gibt eine Menge zB:
TMenge = (Grün = 0, Gelb = 1, Blau = 2, Rot = 3); Dzu Helper: Menge.ToString
In der Combobox stehen die Strings, aber in der Datenbank möchte ich die Ordnungswerte speichern.
Also statt strings möchte ich in der Datenbank integer haben.
Wahrscheinlich muss ich das per Hand machen und auf Livebindings verzichten

Uwe Raabe 5. Nov 2021 12:41

AW: Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
Mit LiveBindings habe ich es noch nicht probiert, aber man kann sowas auch machen, wenn man bei dem betreffenden TField das OnGetText und OnSetText verdrahtet.
Zitat:

use OnGetText to display something other than the field's value when it is displayed.
Am einfachsten geht das, wenn man statische Felder im Dataset hat - und seien es auch nur die betroffenen.

Peter-Pascal 5. Nov 2021 13:31

AW: Livebindings Eintrag von TComboBox zur DB von String in integer ändern
 
Danke für den Hinweis Uwe,

die Ereignisse funktionieren auch mit Livebindings.
In der Tat recht einfach, darauf wäre ich nie gekommen.

Livebindings finde ich mittlerweile richtig gut. Wenn man die Anfänge betrachtet hat sich bis heute mächtig viel getan. Obwohl es schon manchmal trickig ist und man viel ausprobieren muss.

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 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