AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion
Thema durchsuchen
Ansicht
Themen-Optionen

Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

Offene Frage von "Rollo62"
Ein Thema von marcgeldon · begonnen am 4. Apr 2016 · letzter Beitrag vom 7. Apr 2016
Antwort Antwort
marcgeldon

Registriert seit: 7. Sep 2003
Ort: Mannheim und Berlin
20 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 4. Apr 2016, 19:20
Ich möchte hier eine beispielhafte kleine Datenbank Anwendung (Delphi 10 Seattle Update 1 / Firemonkey) zur Diskussion stellen.

Zu finden unter:
> https://github.com/marcgeldon/Delphi-Experiments
> https://github.com/marcgeldon/Delphi...ive/master.zip

Gerne würde ich Verbesserungsvorschläge, Ideen, Bugfixes, Feature-Wünsche usw. hier sammeln und diskutieren. Herauskommen soll zum Schluss ein Beispiel für eine Datenbankanwendung in Delphi in Kombination mit Firemonkey.

Daraus könnte später ein How-To entstehen usw. usw.

Als Beispieldaten bzw. zur Verwaltung bin ich jetzt mal von "Blutdruck Werten" ausgegangen. Mir fiel im ersten Moment nichts anderes ein.

Also ich bin gespannt auf Eure Rückmeldungen ...

Crosspost: http://forum.delphi-treff.de/index.p...103#post445103
Marc

Geändert von TBx ( 4. Apr 2016 um 19:43 Uhr) Grund: Crosspostinfo hinzugefügt, bitte zukünftig selbst machen!
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 5. Apr 2016, 09:43
Vielleicht kannst Du noch etwas mehr zum Zweck des Systems schreiben und was hier Schwerpunkte sein sollen. "Blutdruckwerte verwalten" und vielleicht mal ein Tutorial lockt mich noch nicht so sehr, das zu laden und zu installieren (abgesehen davon, dass ich keine passende Lizenz hab), geht vielleicht anderen ähnlich.
Gruß, Jo
  Mit Zitat antworten Zitat
marcgeldon

Registriert seit: 7. Sep 2003
Ort: Mannheim und Berlin
20 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 5. Apr 2016, 13:59
Hallo jobo...

"Blutdruckwerte" sind natürlich nur beispielhaft. Es geht mir nicht explizit darum diese zu Verwalten. Aber da wir ja mit einer Datenbankanwendung experimentieren mussten ja irgendwelche Beispieldaten her.

Konkret möchte ich erörtern / ausprobieren / testen:

- wie kann man schnell eine Datenbankanwendung im aktuellen Delphi mit aktuellen Bordmitteln aufbauen (Firemonkey, LiveBindings usw.). Bei einer lokalen Datenbank gehören dazu: Datenbank laden, speichern, usw. - zum Schluss soll quasi eine Art Template / Vorlage entstehen

- das ganze System auf andere Datenbanken zu erweitern (evtl. anderes "lokales DataSet" als ClientDataSet), Firebird Embedded (für mehrere Tabellen und relationale Verbindungen usw.) - ClientDataSet wurde nur genommen, da es standardmäßig installiert ist. Man muss also keine weiteren Komponenten installieren.

- Erweiterung der Standardfunktionalität für Client-Server Datenbanksysteme (hier geht es nicht mehr um Datenbank laden, speichern usw., sondern hier geht es um Verbindungen, Anmeldungen, die entsprechenden Dialoge usw.)

- wie lässt sich der Code sauber trennen und testbar machen? Ich habe versucht hier eine Art MVC/MVP >> ANSATZ << einzubringen. Die Form (View) hat nur das mindesteste an Code, um alle Funktionalität kümmert sich der MainController (Controller). Das Datenmodul enthält die gesamte Datenbank und Businesslogik (Model). Ein Komponente als Datenbankcontroller kümmert sich um die ganze "Drum-herum-Funktionalität" (wie Datenbank laden, speichern usw.)
Marc
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 5. Apr 2016, 14:38
Die Idee finde ich gut.
Ich hatte auch mal ähnliches vorgeschlagen: www.delphipraxis.net/1227843-post13.html

Es müssen ja keine sinnvollen Daten sein.
Man kann ja bestimmte Datenstrukturen (Master/Detail) mit Testdaten füllen und die dann weiter bearbeiten.

Interessant ist aus meiner Sicht vor allem, wie die Bindung der GUI an große Datenmengen funktioniert.

Ich habe zwar LB und FMX für mich abgehakt, aber vielleicht hat sich die Funktionalität ja inzwischen verbessert.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
marcgeldon

Registriert seit: 7. Sep 2003
Ort: Mannheim und Berlin
20 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 6. Apr 2016, 09:06
wir ziehen gerade ein größeres VCL Projekt auf Firemonkey und setzen es neu auf.

Fazit: wir haben einige "kleinere" Bugs gefunden und auch im neuen Quality Portal von EMB gemeldet (schnelle Reaktionszeiten übrigens).

Die schnellen Reaktionszeiten seitens EMB und der Einstieg von Idera lassen uns hoffen, dass das eine runde Sache wird (Firemonkey). Im Vergleich zur VCL ist es natürlich noch in den Kinderschuhen (oder in der Pubertät?).

Aber unterhält man sich mit anderen Entwicklern, haben die mit anderen Frameworks (Xamarin usw.) dieselben Problemchen.
Marc
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#6

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 6. Apr 2016, 12:29
Hallo Marcgeldon,

Sehr schön, ich experimentiere auch immer noch mit diesen Basics, und habe die gleichen Goals.

Ich möchte aber gerne Sqlite verwenden statt ClientDataSet, weil damit direkt auch CrossPlattform möglich ist,
und weil es nicht im Memory läuft (so verstehe ich ClientDataSet als SingleDB Lösung).

Für eine InMemoryDb habe ich guter Erfahrungen mit FdMemTable gemacht, aber auf Mobile würde ich InMemory DB
nicht nutzen weil es dann zu Out-Of-Memory Problemen kommen könnte.

Ich möchte wahrscheinlich genau wie Du, ein einfaches Template, was man schnell hinbauen kann
und was dann am Besten noch schnell auf C/S oder Rest erweiterbar/umschaltbar ist.

Jedenfalls habe ich mit Sqlite und FdQuery im Moment noch Schwierigkeiten mit Bitmaps und AutoInc.

Auf jeden Fall finde ich deinen Ansatz nicht schlecht, ich wollte aber noch versuchen die Module zu Trennen durch
- RegisterXxxx die Elemente bekannt zu machen, ohne Units einzubinden
- per TMessageManager die Module untereinander kommunizieren lassen

Aber wie gesagt, so rund ist mein Konzept da noch nicht, auch weil ich das nur wenig Zeit für Tests habe.
Jedenfalls möchte ich gern auf allen Platformen mit dem gleichen Code arbeiten können ohne Kopfschwerzen.
Ich bleibe aber dran, und melde mich falls es etwas Neues gibt.

Rollo
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#7

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 7. Apr 2016, 14:45
Hier habe ich nochmal zumn Thema einen abgespecken Versuch von mir, da habe ich noch schnell versucht deinen ClientDataSet Ansatz mit reinzubringen (Table/Query via CDS).

Ich möchte aber eigentlich Sqlite mit FdQuery benutzen, mit FdTable scheint es am Besten/Einfachsten zu funktionieren.
Aber ich muss immer irgendw Hand an legen und korrigieren, es funktioniert nicht OutOfTheBox.

Die reine CientDataSet Variante funktioniert von Marc ja nicht schlecht, Fmx scheint das zu bevorzugen,
deshalb habe ich noch versucht FdTable/FdQuery via CDS und DataSetProvider anzusprechen,
aber das löst es auch nicht auf (da kommen die AutoInc Felder nicht mir rüber).

Immer muss noch ein Refresh gemacht werden damit das StringGrid sich wieder richtig einstellt, ich weiss
es gibt auch noch 1000 andere Varianten wie man Datenbanken machen kann.

Aber zum orginalen Thread: Was ist eigentlich der kleinste gemeinsame Nenner ?

Wie soll man eine simple, flache DB mit den FireDac Komponenten (oder meinetwegen anders) anlegen
damit alles automatisch richtig funktioniert (keine Zeile Code: wie angepriesen) ?
Wie gesagt CDS möchte zumindestesn ich nicht, weil InMemory DB.
Welchen Schalter muss man noch umlegen ?

Leider fehlen mir die FireDac Sourcen, ich habe zwar Rx10 Pro mit FireDac AddOn, habe das aber noch nie richtig installieren können so das ich dort etwas debuggen könnte.
Aber bestimmt gibt es hier genug Datenbankexperten die soetwas mit Links lösen können.

Die Lösng von Marc sieht sehr gut aus, scheint so aber nur mit CDS zu funktionieren.

Im Anhang sind noch einige Bilder zu Fehlerfällen, auch unter Win und OSX gibt es schon verschiedene Fehler,
iOS Android habe ich noch gar nicht probiert, wenn schon Win nicht sauber läuft.
Da stehe ich wohl komplett auf dem Schlauch

Rollo
Miniaturansicht angehängter Grafiken
afterdeletegridnotcleared.jpg   afterdeletegridnotcleared_bynav.jpg   afterinsertneedrefresh.jpg  
Angehängte Dateien
Dateityp: zip T90_FdSimple.zip (844,4 KB, 9x aufgerufen)
Dateityp: zip Pics.zip (513,4 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#8

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 7. Apr 2016, 15:43
Das hier ist schon etwas älter, aber auch interessant.

Rollo
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#9

AW: Beispiel Datenbank Anwendung in Firemonkey - zur Diskussion

  Alt 7. Apr 2016, 16:20
Dies hier ist auch interessant ...

Und das ist auch interessant mit LiveBindings.

Viele Wege führen zum Ziel Fmx/Db7LiveBindings, aber was ist jetzt wohl der Richtig(ste) Ansatz ?

Ich fände es schon lohnenswert hier mal zusammen ein, oder meherere Art(en) BoilerPlate Templates für Fmx zu bauen,
damit man schneller zu Potte kommt.
Das Beipiel unten von Marc ist ja schonmal ein sehr guter Ausgangspunkt.
Im Moment quälen sich doch anscheinend viele mit den gleichen Problemen rum.

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 16:26 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