AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi [OOP] Daten aus der DB sofort als Objekt speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

[OOP] Daten aus der DB sofort als Objekt speichern?

Ein Thema von TheMiller · begonnen am 24. Dez 2009 · letzter Beitrag vom 24. Dez 2009
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

[OOP] Daten aus der DB sofort als Objekt speichern?

  Alt 24. Dez 2009, 15:24
Hallo,

ich lade aus einer Datenbank Datensätze und möchte diese als Objekte erstellen und auch in einer TreeView anzeigen. Jetzt habe ich mich gefragt, ob es klüger wäre, sofort aus den Datensätzen Objekte zu erstellen und diese in einer abgeleiteten Object-List-Klasse zu verwalten, oder ob ich die Datensätze nur im ID und Titel anzeigen lassen sollte und bei Klick auf einen Eintrag das eigentliche Objekt erstellen sollte, quasi "onDemand".

Ich habe mal 2000 Einträge in die Datenbank geschrieben und beide Varianten ausprobiert. Hier habe ich dann einen RAM-Verbrauch von 7MB (das sind 1,9MB mehr als bei der "onDemand-Variante"), bei 4000 Objekten wären es 9MB.

Vorteil ist natürlich, dass durch die Objekte schön rekursives löschen etc. möglich ist - wäre bei der anderen Methode etwas umständlicher...

Was ist sinnvoll? Was soll ich tun?

Danke und frohes Fest / frohe Festtage!
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: [OOP] Daten aus der DB sofort als Objekt speichern?

  Alt 24. Dez 2009, 16:00
Du kannst doch deine Entitäten auch in 2 Schritten laden.
Du markierst dir welche Eigenschaften sofort geladen werden sollen, und welche erst wen wirklich alles nötig ist.
Dadurch sparst du dir das Gefrickel, was du wohl jtzt gerade hast, nämlich deine Entitäten 2-mal zu verwalten: einmal als irgendein dummer String in irgendeinem Control, und danach plötzlich als richtige Entität mit einem Objekt.
Ob es sich wirklich lohnt den Weg zu gehen hängt davon ab, wie der User auf die Daten zugreift.
Wenn immer nur wenige Daten auf einmal erfragt werden, ist das Lazy-Loading wohl nicht nur Overkill, sondern wird auch die Last auf Datenbank und App-server nur sinnlos erhöhen.
Was man gerade in Delphi erstmal machen muss, wo rein RAD-basierte Clients die Regel sind, ist MVP/MVC Samples raussuchen und auch wie in Delphi Mediatoren (Die den Link zw. View und Model bilden) am sinnvollsten entworfen werden.
Da wirkliches OO in Delphi eher die Ausnahme ist, kannst du dich wohl auf eine längere Google-Exkursion gefasst machen.
Was ich auf die Schnelle fand war das hier A Simple start with MVP in Delphi for Win32, Part 1.

Schaue dir auch unbedingt tiOPF an, ein Persistenz Framework für Delphi, welches wohl schon mit MVP-Framework kommt.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [OOP] Daten aus der DB sofort als Objekt speichern?

  Alt 24. Dez 2009, 18:35
Falls du noch die freie Wahl der Datenbank hast, kannst du dir auch mal eine objektorientierte Datenbank wie Bei Google suchendb4o angucken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 03:42 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