Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

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

Objekte in Datenbank speichern und parallel zugreifen

  Alt 21. Apr 2009, 11:08
Datenbank: egal • Zugriff über: egal
Hallo alle,

in meinem aktuellen Projekt verwende ich Datenobjekte zur Datenverwaltung und sichtbare Objekte zur Anzeige und Bearbeitung der Daten. Die sichtbaren Objekte können sich bei "ihrem" Datenobjekt registrieren und ab sofort stehen die beiden ständig in Verbindung und tauschen die Daten miteinander aus. Die Speicherung der Daten erfolgt in einer spezialisierten Ini. Beim Laden der Datei werden die enthaltenen Objekte und Beziehungen wieder hergestellt.

Das funktioniert soweit auch ganz gut, aber ein Nachteil besteht darin, dass keine 2 Cilients gleichzeitig auf die Daten zugreifen können und in bestimmten Fällen nur eine Instanz der sichtbaren Objekte verwaltet werden kann.

Daher habe ich überlegt, die Daten doch in einer Datenbank zu speichern.

Darin müssen dann "komplette Objekte" gespeichert werden, incl. Position, Größe usw.
Dann müsste es sichtbare Komponenten geben, die sich aus dieser Datenbank versorgen und weitere sichbare Komponenten erzeugen.
Wird z.B. ein Positionswert in der Datenbank verändert, müsste das in allen angebunden Clients und deren sichtbaren Objekten beachtet werden.

Anbei habe ich einmal ein kleines vereinfachtes Testprojekt angehängt (es muss nur die DBE installiert sein). Man kann mehrere Instanzen des Programms starten. Wenn man die X/Y-Werte in der Datenbank ändert hat dies unmittelbar Auswirkungen auf alle Programme. Durch Verschieben einer Komponente werden die Positionsdaten in der Datenbank ebenfalls verändert und von den anderen Instanzen übernommen.

Natürlich fehlen da noch jede Menge Dinge an der Umsetzung, insbesondere, dass die Aktualisierungen nur für die Komponenten erfolgen, die von Änderungen in der DB betroffen sind usw.

Im weiteren Verlauf müssen dann auch die Anzahl und Art der Objekte gespeichert werden. Wenn man im Demoprogramm z.B. weitere unterschiedliche Objekte auf die "Designer" ziehen würde, müssten diese in der Datenbank komplett gespeichert (Klassenname, Position, Größe, Farbe etc.) und sich beim Neustart so wieder herstellen lassen.


Meine Frage aber schon einmal:
- Erfinde ich das Rad gerade neu?
- Gibt es dafür gängige Umsetzungen?
- Habt Ihr an einer solchen Lösung grundsätzlich Interesse?

Stahli
Miniaturansicht angehängter Grafiken
testobjectdb_161.jpg  
Angehängte Dateien
Dateityp: zip testobjectdb_205.zip (501,1 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat