Hallo,
für einen ThinClient einer Datasnap Anwendung soll die Möglichkeit bestehen, auf Änderungen des Datenbankschema derart zu reagieren, dass die Formulare für Datenein- und ausgabe dynamisch erzeugt werden.
Dadurch, dass bei jeglicher Änderung des Datenbankschema der Client neu verteilt werden müsste, soll sich der Client beim Öffnen eines Formulares eben dieses auch vom Datasnap-Server laden.
Eine Änderung des
DB-Schema zieht nun nur eine Änderung des Server nach sich. Die Änderungen sind vor den Clienten also mehr oder weniger maskiert.
Existieren dazu bereits bekannte Ansätze, wie man vorgehen kann?
Folgende Möglichkeiten habe ich derweil in Betracht gezogen:
1) {nicht ganz konform zu den Anforderungen, aber machbar}
Der Server hält alle Formulare als
BPL-Files in der Datenbank. Mit einem Request, dass der Client nun bspw. die Adressenverwaltung öffnen möchte, lädt sich der Client von der Serveranwendung das
Package abcADRESSEabc.bpl und startet das darin enthaltene Formular. Problem: Das
Package muss erst als Datei gespeichert werden. Oder gibt es ein LoadPackage(Stream: TStream)?
2)
Das Formular wird
dfm-like übertragen und alle Komponenten werden zur Laufzeit erstellt. Großes Problem: Im Formular geschriebener Code ist nicht mehr vorhanden.
3) ???