Ich binn dann wohl immer noch im Irrglauben das die Datasets nicht Alle Daten im Speicher halten, sondern nur intelligent per Chinks sich die passenden Häppchen holen.
Das hängt sicher vom
Query ab, ein FDMemTable oder ClientDataSet hat Alles im Speicher,
aber was ist mit TFDQuery, oder ähnlichen Konstrukten ?
Die sollen das doch genau das Daten- und MemoryManagement vor mir Kapseln.
ORM ist gut und richtig, das sehe ich auch so.
Aber warum eigentlich nicht direkt von TDataset auf die Controls binden ?
Warum unbedings Objekte dazwischenbauen ?
(Ok, ich verstehe das man in den Objekten tolle Logik reinbauen kann, aber sollte man das wirklich dort machen) ?
Mit einer Wrapperklasse sollte das doch "einfach" möglichs ein.
TDbGrid macht das doch im Prinzip auch so, nur der der Wrapper im DBGrid selber ist, sozusagen.
LiveBinding per Code macht das im Prinzip so, mit FillExpressions z.B. für ListView,
und da glaube ich eben auch das dies der richtige Weg ist, das per
RTTI zu entkoppeln.
So in dieser Richtung, am liebsten per Code:
Delphi-Quellcode:
FDb.Bind(Query1, ListView, 'Name', 'Text')
.Bind(Query1, ListView, 'Descr', 'Detail')
.Bind(Query1, ListView, 'ImgId', 'ImageIndex')
.Bind(Query1, Grid1, '*')
.Bind(Query1, Edit1, 'Name', 'Text', dbBidirectional)
...
;
Rollo