...aber ich habe durchaus Tabellen in TAdoDataSet zur Entwicklungszeit aktiv und kann trotzdem den ConnectionString zur Laufzeit umbauen.
Ich nehme an, dass die Nichtbeachtung deiner Regeln bei Anwendungen zu Problemen führt, die alle Fenster bereits beim Programmstart erzeugen?
Das ist soweit richtig.
Nur ist es bei vorallem bei grossen Projekten so, dass man die Reihenfolge in der Datenmodule und Formulare erzeugt werden nicht 100% im Griff hat.
Lange Zeit läuft alles gut, aber vielleicht benötigt ein Formular dass frühzeitig erzeugt wird, ein weiteres Datenmodul.
Auf diesem Datenmodul sitzt dann vielleicht dummerweise ein aktives ADODataset und schon hat man ein Problem.
Noch gemeiner ist folgende Konstellation:
In der
IDE ist das Datenmodul auf dem die ADOConnection liegt geöffnet. (Connected=False)
Jetzt braucht man nur versehentlich das Formular/Datenmodul mit dem aktiven ADODataset öffnen
um etwas nachzuschauen und die Connection wird automatisch aktiv. *)
Wenn man jetzt nicht aufpasst und in der
IDE "Alles speichern" wählt wird die ADOConnection mit Connected=True abgespeichert.
Aber man bemerkt das Problem nicht; erst auf dem Zielrechner beim Endbenutzer gibt es Ärger.
*) die IDE müsste eine "Schatten"-ADOConnection, also eine Kopie der orginalen Connection benützen, dann wäre das Problem vom Tisch.