Hallo,
wer hat Erfahrungen beim Einsatz von Datenmodulen? Nach meiner Meinung sind bei der Programmierung eher hinderlich als hilfreich. Falls jemand Lösungen zu folgenden Problemen hat, würden sie mich interessieren:
Problem: Ereignisbehandlungsroutinen
Die Ereignisbehandlungsroutinen der Tabellen sind häufig die einzige (bzw. effizienteste) Möglichkeit zur Reaktion auf Aktionen des Benutzers (Mausklicks, Eingaben usw.) in einem Formular. So gibt es z.B. keine geignete Möglichkeit, um auf das Verschieben des Satzzeigers einer Tabelle in einem dbgrid zu reagieren, außer durch die AfterScroll-Methode der Tabelle. Weiterhin kommt es häufig vor, daß verschiedene Aktionen des Benutzers sowohl die gleichen Ereignisbehandlungsroutinen aktivieren als auch eine gleiche Behandlung im Programm erfordern. Durch die Verlagerung der Tabellenkomponenten in das Datenmodul, sind solche formularspezifischen Programmreaktionen auf Aktionen des Benutzers aber nur durch zusätzliche "manuelle" Codierung zu erreichen.
Problem: MDI-Anwendungen
In MDI-Anwendungen wird i.d.R. für jedes Formular eine eigene Instanz des Datenmoduls benötigt. Dies erfordert ebenfalls einigen zusätzlichen Programmieraufwand, insbesondere bei Anwendungen mit vielen Dateien. Für jede Instanz müssen mindestens 3 Zeilen (Definition, Create, Destroy) geschrieben werden. Außerdem können nun die visuellen Formularelemente nicht mehr zur Entwurfszeit mit den Tabellenkomponenten verbunden werden. Auch hierfür ist zusätzlicher Programmieraufwand erforderlich.
Problem: Lookup-Felder
Definiert man die Lookup-Felder in den Datenmodulen, müssen für jede geöffnete Tabelle zugleich auch alle Lookup-Tabellen geöffnet werden, selbst dann, wenn man garnicht auf die Felder zugreift. Dies setzt wiederum voraus, daß die Datenmodule erzeugt wurden (siehe MDI-Anwendungen). Bei komplexen Datenstrukturen mit vielen Dateien bzw. Dateiverbindungen erhöht sich der Codieraufwand so sehr stark.
Die wenigen verbleibenden Vorteile wiegen nach meiner Meinung die schwerwiegenden Nachteile nicht auf.
Oder liege ich mit meiner Meinung völlig falsch ?
wer hat Erfahrungen beim Einsatz von Datenmodulen? Nach meiner Meinung sind bei der Programmierung eher hinderlich als hilfreich. Falls jemand Lösungen zu folgenden Problemen hat, würden sie mich interessieren:
Problem: Ereignisbehandlungsroutinen
Die Ereignisbehandlungsroutinen der Tabellen sind häufig die einzige (bzw. effizienteste) Möglichkeit zur Reaktion auf Aktionen des Benutzers (Mausklicks, Eingaben usw.) in einem Formular. So gibt es z.B. keine geignete Möglichkeit, um auf das Verschieben des Satzzeigers einer Tabelle in einem dbgrid zu reagieren, außer durch die AfterScroll-Methode der Tabelle. Weiterhin kommt es häufig vor, daß verschiedene Aktionen des Benutzers sowohl die gleichen Ereignisbehandlungsroutinen aktivieren als auch eine gleiche Behandlung im Programm erfordern. Durch die Verlagerung der Tabellenkomponenten in das Datenmodul, sind solche formularspezifischen Programmreaktionen auf Aktionen des Benutzers aber nur durch zusätzliche "manuelle" Codierung zu erreichen.
Problem: MDI-Anwendungen
In MDI-Anwendungen wird i.d.R. für jedes Formular eine eigene Instanz des Datenmoduls benötigt. Dies erfordert ebenfalls einigen zusätzlichen Programmieraufwand, insbesondere bei Anwendungen mit vielen Dateien. Für jede Instanz müssen mindestens 3 Zeilen (Definition, Create, Destroy) geschrieben werden. Außerdem können nun die visuellen Formularelemente nicht mehr zur Entwurfszeit mit den Tabellenkomponenten verbunden werden. Auch hierfür ist zusätzlicher Programmieraufwand erforderlich.
Problem: Lookup-Felder
Definiert man die Lookup-Felder in den Datenmodulen, müssen für jede geöffnete Tabelle zugleich auch alle Lookup-Tabellen geöffnet werden, selbst dann, wenn man garnicht auf die Felder zugreift. Dies setzt wiederum voraus, daß die Datenmodule erzeugt wurden (siehe MDI-Anwendungen). Bei komplexen Datenstrukturen mit vielen Dateien bzw. Dateiverbindungen erhöht sich der Codieraufwand so sehr stark.
Die wenigen verbleibenden Vorteile wiegen nach meiner Meinung die schwerwiegenden Nachteile nicht auf.
Oder liege ich mit meiner Meinung völlig falsch ?
Comment