AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelleninhalt in Objekte abbilden (dynamisch)
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelleninhalt in Objekte abbilden (dynamisch)

Ein Thema von VizeTE · begonnen am 18. Mär 2005 · letzter Beitrag vom 18. Mär 2005
Antwort Antwort
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

Tabelleninhalt in Objekte abbilden (dynamisch)

  Alt 18. Mär 2005, 13:23
Datenbank: Interbase • Zugriff über: BDE
Hallo zusammen,

in vielen Situationen finde ich es durchaus hilfreich die Daten aus einer Datenbank in Objekten zu speichern und dann mit diesen Objekten zu arbeiten. Wenn ich schon einfach daran denke, die Objekte auszutauschen und ohne weiteres auf eine andere Datenquelle zuzugreifen(zB XML) oder eigene Such- und Sortieralgorithmen zu implementieren.
Das Problem, daß mich dabei aber permanent verfolgt ist die Beziehung zwischen Datenbankfeld und Objektvariable herzustellen.
Sicher könnte man ohne weiteres sagen: Feld Namens "Id" wird auf die Variable "FID" abgebildet.
Bei dieser Variante stößt man aber schnell auf Grenzen. Ich sehe zum Beispiel in den folgenden Fällen Probleme:

1. Das Feld bekommt per SQL-Abfrage einen anderen Namen (SELECT Id AS Index FROM ...)
2. Das Feld ist gar nicht in der Datenmenge vorhanden, was auch durch ein Query verursacht werden kann (SELECT Name FROM...)
3. Ich habe zwei Tabellen aus denen ich die Daten lesen kann da die Daten redundant gehalten werden. Allerdings unterscheidet sich die Bezeichnung der Felder in den Tabellen obwohl sie den gleichen Inhalt haben

Ein weiteres Plus wäre es natürlich noch wenn die gesamte Struktur recht offen für Änderungen der Tabellenstruktur wäre. (Wenn z.B. völlig neue Felder hinzukommen etc)

Einen Lösungsansatz, den ich mir überlegt habe ist eine Art Mapping-Tabelle zu implementieren. Ich bin mir allerdings nicht sicher ob das die optimale Variante ist.

Ich kann mir nicht vorstellen, daß ich allein dieses Problem habe. Kann mir jemand weiterhelfen? Ich würde mich auch über Anregungen freuen, mit denen ich Suchmaschinen füttern kann da ich zur Zeit mein Problem garnicht Suchmaschinenkonform formulieren kann.

Vielen Dank - VizeTE
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Tabelleninhalt in Objekte abbilden (dynamisch)

  Alt 18. Mär 2005, 13:29
Schau dir mal ECO von Delphi 8/2005 an.
Dort wird ein solches Objekt-Relationales Mapping realisiert - aber nur für .NET aber für diverse Datenbanken.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Tabelleninhalt in Objekte abbilden (dynamisch)

  Alt 18. Mär 2005, 14:17
oh...sorry das habe ich vergessen zu vermerken.
Optimal wäre eine Lösung für Delphi5, für Delphi7 wäre auch noch ok.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Tabelleninhalt in Objekte abbilden (dynamisch)

  Alt 18. Mär 2005, 15:14
Hi,

nein, mit diesem Problem bist du wirlich nicht allein.
Grundlageninformationen dazu findest du unter den Stichworten Objektrelationales Mapping oder Objektrelationale Abbildung z.b. in Heide Balzert, Lehrbuch der Objektmodellierung.
Aber auch in ungezählten anderen Quellen.
Man könnte auch Objektpersistenz mal versuchen.
Bis Delphi 7 hieß eine der Technologien, die soetwas umsetzen Bold, wurde dann von Borland gekauft, im Dot Net bereich jetzt halt ECO.

Es gibt auch andere Frameworks, die diese Idee für Delphi umsetzen, Name fällt mir da jetzt gerade nicht ein. Auf der Modelmakter Website wurde da früher immer ein Partner für sowas erwähnt, weiß aber nicht, ob der Link dort noch zu finden ist.

Grüße
Woki
  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 19:17 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