Discussion:
Object Persistence Framework für Delphi (Objekt Relational Mapper?)
(zu alt für eine Antwort)
Moritz Franckenstein
2011-08-12 07:35:35 UTC
Permalink
Moin,

für eine Delphi XE Datenbankanwendung habe ich mir tiOPF und auch
InstantObjects grob angesehen und bin unschlüssig ob sich sowas lohnt.
Hat da jemand Erfahrung mit? Welche gibt es noch und was ist
empfehlenswert?

Die Daten in meiner DB könnte man tatsächlich als Business-Objekte
bezeichnen, und die Vorstellung, sie auch in Delphi als Objekte
anspechen zu können finde ich recht verlockend, insbesondere wenn ein
Objekt über mehrere verknüpfte Tabellen abgebildet wird.

Die Anwendung soll mehrsprachig sein, ich muss also Unicode-Zeichen
ablegen können. Und es sollte mit Delphi XE laufen. Performance steht
nicht unbedingt an erster Stelle, würde ich sagen. Die Datenbank ist MSSQL.

Bin für alle Tipps dankbar...
--
Moritz Franckenstein
mailto:maf-***@gmx.net
http://www.maf-soft.de/
icq: 22030984 y!: maf_soft
Matthias Frey
2011-08-24 13:52:29 UTC
Permalink
Post by Moritz Franckenstein
Moin,
für eine Delphi XE Datenbankanwendung habe ich mir tiOPF und auch
InstantObjects grob angesehen und bin unschlüssig ob sich sowas lohnt.
Hat da jemand Erfahrung mit?
Offensichtlich nicht ... :-(

{$REGION 'Sarkasmus'}
Objekte - was sind das? ;-)
Die meisten die mit Delphi DB-Anwendungen machen verwenden Queries
oder Findkey und gehen dann mit While ... not Eof durch.
Von Objektorientierung keine Spur.
Na ja, viele verwenden immerhin TDataModule ;-)
{$ENDREGION}

Ein Object Persistence Framework sollte m.E. eigentlich native
zu Delphi gehören. Mag Dir unter diesen Umständen eher nicht
dazu raten.


Matthias
Thomas G. Liesner
2011-08-24 22:15:06 UTC
Permalink
Post by Matthias Frey
{$REGION 'Sarkasmus'}
Objekte - was sind das? ;-)
Die meisten die mit Delphi DB-Anwendungen machen verwenden Queries
oder Findkey und gehen dann mit While ... not Eof durch.
Von Objektorientierung keine Spur.
Na ja, viele verwenden immerhin TDataModule ;-)
{$ENDREGION}
Ich möchte die Kontrolle über die DB-Darstellung behalten, ein OPF nimmt
sie mir. Die Kontrolle brauche ich für einen wesentlichen Fall: Dass die
DB im Laufe der Zeit angepasst werden muss und die nötigen Anpassungen
keine Altdaten zerstören dürfen, ggf. Defaultwerte für neue Felder
geschrieben werden, ggf. bestehende Felder in neue Felder mit
veränderter Darstellung übernommen werden müssen etc pp

Der Preis ist relativ viel Code, der zwischen DB und interner Darstel-
lung übersetzen muss, dafür weiss ich genau, wieviel ich cache, wo ich
aktuelle Daten ranhole, wie performant die DB-Darstellung ist, dass die
Daten soweit sinnvoll normalisiert vorliegen und dass ich mit Änderungen
im Code eventuell Laufzeitfehler erreiche, da ich die Schnittstellen
noch nicht nachgezogen habe, aber mit Sicherheit keine DB-Schema-
Veränderungen auftreten können, die ich nicht explizit so programmiert
habe.

Aber vielleicht habe ich ja falsche Vorstellungen...

So long,
Thomas G. Liesner
Moritz Franckenstein
2011-08-25 09:37:47 UTC
Permalink
Post by Thomas G. Liesner
Ich möchte die Kontrolle über die DB-Darstellung behalten, ein OPF nimmt
sie mir.
Ich habe nun recht viel Zeit in tiOPF investiert; es ist zwar noch nicht
endgültig entschieden, aber ich habe vor, es zu benutzen. Die DB kann
und werde ich dennoch von Hand pflegen und sie wird im Wesentlichen
genauso aussehen, wie ohne OPF. Insofern ist dieser Vorbehalt schonmal
hinfällig. tiOPF übernimmt Änderungen an den Objekten keineswegs
zwangsweise automatisch in die DB; dafür ist die Zuordnung der Felder
doch wieder etwas Handarbeit, aber das finde ich in Ordnung.
--
Moritz Franckenstein
mailto:maf-***@gmx.net
http://www.maf-soft.de/
icq: 22030984 y!: maf_soft
Matthias Frey
2011-08-26 14:57:57 UTC
Permalink
Post by Moritz Franckenstein
Post by Thomas G. Liesner
Ich möchte die Kontrolle über die DB-Darstellung behalten, ein OPF nimmt
sie mir.
Nur soweit du es zulässt ...
Post by Moritz Franckenstein
Ich habe nun recht viel Zeit in tiOPF investiert; es ist zwar noch nicht
endgültig entschieden, aber ich habe vor, es zu benutzen. Die DB kann
und werde ich dennoch von Hand pflegen und sie wird im Wesentlichen
genauso aussehen, wie ohne OPF. Insofern ist dieser Vorbehalt schonmal
hinfällig. tiOPF übernimmt Änderungen an den Objekten keineswegs
zwangsweise automatisch in die DB; dafür ist die Zuordnung der Felder
doch wieder etwas Handarbeit, aber das finde ich in Ordnung.
Wenn man etwas nicht automatisch machen will, dann ist eben Handarbeit
angesagt.
Dass so ewas prinzipiell möglich ist, soweit habe ich mich damals
schon eingelesen gehabt.
Objekte sind aber schon jeweils Tabellen zugeordnet?
Kann man also nur Felder manuell zuordnen oder auch Tabellen?
Also z.B. zwei Felder eines Objektes in zwei verschiedenen
Tabellen sspeichern?


Matthias
Moritz Franckenstein
2011-08-28 07:43:30 UTC
Permalink
Post by Matthias Frey
Objekte sind aber schon jeweils Tabellen zugeordnet?
Kann man also nur Felder manuell zuordnen oder auch Tabellen?
Also z.B. zwei Felder eines Objektes in zwei verschiedenen
Tabellen sspeichern?
Da ist man völlig frei, soweit ich das verstanden habe. Man kann jedes
Objekt einer Tabelle zuordnen, und z.B. auch bei abgeleiteten Objekten
die Felder der Basisklasse in einer Tabelle und die hinzukommenden der
Ableitung in einer weiteren haben, oder auch beides in der gleichen
Tabelle, so dass die Basisklasse dann nicht alle Spalten nutzt. Glaube ich.
--
Moritz Franckenstein
mailto:maf-***@gmx.net
http://www.maf-soft.de/
icq: 22030984 y!: maf_soft
Lesen Sie weiter auf narkive:
Loading...