AGB  ·  Datenschutz  ·  Impressum  







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

FireMonkey, Datenbank und Schichtentrennung

Offene Frage von "Rollo62"
Ein Thema von BattleScarz · begonnen am 22. Sep 2016 · letzter Beitrag vom 22. Sep 2016
Antwort Antwort
BattleScarz

Registriert seit: 22. Sep 2016
1 Beiträge
 
#1

FireMonkey, Datenbank und Schichtentrennung

  Alt 22. Sep 2016, 10:51
Schönen guten Tag,

ich bin neu im Umgang mit FireMonkey und bastel gerade an meinem ersten Projekt.

Ziel ist es, dass eine Suche in einer MariaDB ausgeführt wird und die Ergebnisse in der FireMonkey Oberfläche angezeigt werden.
Bei dem Projekt möchte ich die Schichten klar von einander trennen.
Das heißt im Moment habe ich die GUI, die Geschäftslogik und eine Datenzugriffsschicht. Die GUI soll nur die Geschäftslogik kennen und die Geschäftslogik soll nur das DatenModul kennen.
Soweit so gut.

Meine Frage ist nun, wie ich der GUI die Daten durch die Geschäftslogik unterschieben kann.
Bislang habe ich es nicht hinbekommen, dass in der GUI die Daten sichtbar ankommen. Bislang habe ich bei VCL Datenbankkomponenten immer mit dem Attribut DataSource arbeiten können.
Bei FireMonkey steige ich aber mit den LiveBindings noch nicht so ganz durch.

In Beispielen liegen die Querys oder anderen Datenquellen immer neben den GUI-Komponenten. Bei meinem Projekt bekomme ich in die GUI aber nur noch ein DataSet.

Vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FireMonkey, Datenbank und Schichtentrennung

  Alt 22. Sep 2016, 11:00
In FMX gibt es keine Datacontrols mehr. Deshalb muss man sich Live-Bindings oder anderen Techniken verwenden (MVC-MVP-MVVC)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.131 Beiträge
 
Delphi 12 Athens
 
#3

AW: FireMonkey, Datenbank und Schichtentrennung

  Alt 22. Sep 2016, 11:02
Wenn du ein TDataModul hast, dann kannst du im OI, bei einem Property, auch DataModulName.DataSourceName angeben, statt DataSourceName zu einer Quelle auf der eigenen Form.

Hoffe es hilft.



Im Notfall ginge auch DataSet auf 'nem Datenmodul, DataSource auf der Form (verbunden siehe oben) und dann via LiveBinding an das Grid/Edit binden.

Ansonsten bleibt dir nur das LiveBinding per Code vorzunehmen und den visuellen Editor zu ignorieren. ... da kannst du dann ja Alles von sonstwo mit sonstwem sonstwie verknubbln.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Sep 2016 um 11:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: FireMonkey, Datenbank und Schichtentrennung

  Alt 22. Sep 2016, 11:52
Deshalb muss man sich Live-Bindings oder anderen Techniken verwenden (MVC-MVP-MVVC)
Andere Techniken bitte! MVVM?

Oder um es anders zu beschreiben:

Dein Datenmodul hat neue Daten - dann schick eine Message an die GUI "Sie" möge ich bitte aktualisieren. Dann einfach von GUI Seite die Felder auslesen...

Für Deine Trennung, hoffe ich, dass Du gegen die Datenbankschicht per Interfaces linkst, um diese ggf. austauschen zu können...

Also Eigentlich:

GUI -> GUI_Steuerung -> Business Logik -> Datensteuerung -> Interface(Datenzugriff)

Mavarik
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#5

AW: FireMonkey, Datenbank und Schichtentrennung

  Alt 22. Sep 2016, 20:28
Schau mal hier
https://delphiaball.co.uk/tag/livebindings/

Aber wg. der LiveBindings per Code ...
Nicht mit dem Designer

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 20:52 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