Kurz nur meine, und nur meine
, Meinung...
Ich habe früher auch mit datensensitiven Controls gearbeitet. Es war manchmal ein Krampf es vernünftig zum Laufen zu kriegen je komplexer das ganze wurde. Seit ich die Datensätze als Objekte abbilde (über eine Zwischenschicht) ist es viel einfacher und übersichtlicher. Man kann z.B. in den Objekten Informationen als Properties ablegen welche nicht in der Datenbank stehen.
Einfaches Beispiel:
Früher:
-
Query -> DataSource -> DBGrid.
- Änderungen (Edit) an der
Query
- zurückschreiben über ApplyUpdates
-> ging nicht bei komplexen Queries die Daten aus verschiedenen Tabellen beinhalten.
-> Transaktionssteuerung teilweise kompliziert bis unmöglich
Heute:
-
Query -> DS werden zu Objekten gewandelt -> in generischer Objektlist abgelegt (Zwischenschicht)
- Listview z.B. -> Objekt Properties zur Visualisierung -> Objekt in Data abgelegt (Pointer auf das Objekt in Liste)
- über Data des Listvieweintrages kann man direkt auf das Objekt zugreifen, Properties ändern etc.
- jedes Objekt weiß dann selbst ob es geändert wurde (Property Changed z.B.)
- beim Speichern erledigt die "Zwischenschicht" den Datenbankzugriff und generiert die
SQL Statements, Transaktionen etc.
--> Vorteil: Der Listview ist es egal wo die Daten herkommen... aus Datenbank,
XML,
CSV etc. und ist damit leicht austauschbar (Optik vieleicht)
Der
RAD Ansatz geht, wie du schon sagtest, flöten... Ich habe aber das Gefühl, daß man seine Anwendung besser im Griff hat wenn man mit Objekten arbeitet. Der Aufwand ist natürlich höher. Rechnet sich aber je komplexer das wird.