Für kleinere Projekte ist ein Datenmodul uneingeschränkt zu empfehlen - für richtig grosse jedoch nicht.
Ich habe hier ein Programm noch in Pflege, das über 100 Tabellen benötigt. Es wurde von mir vor ca. 10 Jahren erstellt und hat "nach Lehrbuch" alle Abfragen und Update-/Insert-/Delete-Statements in Querys und die in mehrere Datenmodule verfrachtet.
Das ganze ist extrem unübersichtlich und deshalb ausserordentlich schlecht wartbar.
Die Lösung für grosse Projekte ist für mich seit einigen Jahren eine Kombination aus drei Bausteinen:
1. einer abstrakten Datenbankklasse, die mich von allen Updatequeries befreit und nebenbei die Struktur der Tabellen automatisch pflegt und beim Kunden anpasst,
2. einer Klasse, die als eine Art "Wörterbuch" fungiert und für alle Felder der Datenbank die Eigenschaften speichert und damit
3. einer eigenen Dataset-Komponente alle Konfigurationsinfos liefert (nie wieder mühevoll immer und immer wieder die gleichen persistenten Felder im
OI konfigurieren)
Die
SQL-Abfragen für Statistiken etc. sind grösstenteils in der Datenbank selbst gespeichert und damit ohne Programmneukompilierung anpassbar.
Ein Datenmodul habe ich immer noch - da befinden sich aber nur noch eine Handvoll Komponenten wie die Database, Transaction und eine ImageList.