AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX + Datenbindung

Ein Thema von TigerLilly · begonnen am 7. Mär 2023 · letzter Beitrag vom 9. Mär 2023
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

AW: FMX + Datenbindung

  Alt 8. Mär 2023, 10:34
Aber wenn ich einen Datenbank auf mache, hätte ich gerne die Daten im Memory und dann kann ich die Daten bei Bedarf
darstellen.
Nichts anderes passiert bei einem TDataSet und datensensitiven Controls. Das TDataSet hält die Daten (oder einen Teil davon) im Memory und die datensensitiven Controls übertragen das z.B. bei einem TDBEdit in das Text Property zur Anzeige und gegebenenfalls Änderung. Danach werden die Daten aus dem Text wieder in den Puffer des TDataSet übertragen (entfällt natürlich bei nur darstellenden DB-Controls), von dem das dann beim Post in die Datenbank geschickt wird. Mit dem Enabled der verbindenden TDataSource kann man diese Automatik auch nach Bedarf aus- und wider einschalten. Gleiches geht über das TDataSet mit DisableControls und EnableControls für alle Verknüpfungen.

Nirgendwo geschieht die Datenhaltung in den visuellen Controls. Ob ich jetzt ein TEdit in einer Load-Methode aus einem TField befülle und in einer Save-Methode den aktuellen Inhalt in das Feld zurückschreibe oder gleich ein TDBEdit verwende, das dies automatisch macht (genauer gesagt macht es ein TFieldDataLink), ist doch im Prinzip erstmal egal. Der DB-Ansatz kommt halt ohne zusätzlichen (also nicht in der Standard-Lib vorhandenen) Code aus.

Interessant finde ich auch, dass einige ORM-Frameworks, wie z.B. Aurelius oder Spring4D, eine TDataSet-Komponente mitbringen, die eine Liste von Objektinstanzen verwaltet. Damit lassen sich datensensitive Komponenten auch auf reine in-memory Objekte anwenden.

Eigentlich waren datensensitive Komponenten von Anfang an ein Weg, die Datenhaltung aus den visuellen Controls auszulagern, noch bevor das als erstrebenswert in den Köpfen der Entwickler verankert wurde. Woher die Ansicht kommt, dass datensensitive Komponenten die Daten selbst speichern, kann ich auch nicht sagen. Es ist definitiv nicht so. Aber Fakes verbreiten sich ja bekanntermaßen leichter als Facts.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
442 Beiträge
 
Delphi 12 Athens
 
#12

AW: FMX + Datenbindung

  Alt 8. Mär 2023, 10:48
Uwe hat es mal wieder auf den Punkt gebracht. 👍
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: FMX + Datenbindung

  Alt 9. Mär 2023, 08:22
Mich wundert es sehr, dass es da aus Entwicklersicht von der VCL zu FMX so einen - nun - Rückschritt gegeben hat. Ich müsste im Augenblick drei unterschiedliche Technologien (oder zwei und selber was schreiben) mischen, um das zu bekommen, was bei der VCL out of the box ging.

Und ja: Ich habe ein sehr datenlastiges Programm, das ich gerne Multi-Platform machen würde. Ich bin da grad ratlos.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#14

AW: FMX + Datenbindung

  Alt 9. Mär 2023, 09:56
Mich wundert es sehr, dass es da aus Entwicklersicht von der VCL zu FMX so einen - nun - Rückschritt gegeben hat.
Ja, das wundert mich auch. Insbesondere hätte man hier gleich die Datensensitivität ganz am Anfang der Vererbung vorsehen können. Das hätte die separaten DB-Controls ganz erspart. Man hat ein DataSource und ein DataField Property (letzteres wird nicht überall gebraucht). Ist das DataSource Property nil verhält sich das Control normal, andernfalls eben datensensitiv. Beide Properties sind erstmal protected und werden in den jeweiligen Controls dann nach Bedarf published.

Es hätte so einfach sein können. Stattdessen steckt man die Entwicklerkapazitäten in Live-Bindings.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: FMX + Datenbindung

  Alt 9. Mär 2023, 10:27
Es hätte so einfach sein können. Stattdessen steckt man die Entwicklerkapazitäten in Live-Bindings.
Ich denke mir ja, dass es wohl irgendeinen Grund gibt, das genauso gemacht zu haben. Mir erschließt es sich halt nur nicht. Legacy Anwendung umstellen ist immer wieder ein Thema + Crossplatform ist dann immer auch ein Thema. Aber der Umstieg von VCL zu FMX ist schon ein großer Schritt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#16

AW: FMX + Datenbindung

  Alt 9. Mär 2023, 10:51
Alternativen: Live Bindings, die gehen aber zB mit einigen TMS Komponenten nicht.
Kannst du die bitte mal nennen? Die Live-Bindings basieren auf dem Observer-Pattern, das schon seit geraumer Zeit tief in TComponent verankert ist. Damit mache ich an anderer Stelle auch so einiges. Wenn also Komponenten eines Drittherstellers das immer noch nicht unterstützen wäre das meiner Meinung nach ein massives Versäumnis und ich wüsste dann gern vorher wo es haken könnte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: FMX + Datenbindung

  Alt 9. Mär 2023, 11:14
Ich bin bei den FNC Komponenten darüber gestolpert - kann gut sein, dass das für die FMX Komponenten nicht gilt, das müsste ich nachsehen.

Zitat:
Livebindings isn't enabled for FNC. The only 2 components that are currently DB-Aware are TMS FNC Planner and TMS FNC Grid and this functionality is exposed via database adapter. We'll investigate if we can add support for this.
Bei den FNC Komponenten sind die TFNCEdits (mittlerweile) LiveBindings enabled, aber andere eben nicht.

Es gibt von TMS einer DataBinder für FNC, aber der ist nur ReadOnly, schreibt also nicht zurück.
Zitat:
Note that the databinder component is currently only
supporting retrieval and display of data.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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