Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#6

Re: Probleme mit Initialisierung (Fehlende Connection)

  Alt 6. Dez 2009, 17:37
Zitat von sx2008:
Bei ALLEN Datenbankkomponenten muss das Property Active im Objektinspektor auf False gesetzt werden!
Wenn man das nicht beachtet, passieren seltsame Dinge.
Mal angenommen auf einem Form wäre eine ADOQuery mit Active=True.
Sobald dieses Formular erzeugt wird, entsteht eine Kettenreaktion:
Die Query braucht eine Connection. Sie kann auch auf einem Datenmodul liegen.
Ist diese Connection geschlossen, wird sie automatisch geöffnet und umgeht so
möglicherweise deinen Code in dem du den ConnectionString setzt.
Ist das Datenmodul noch nicht vorhanden, dann gibt es eine Meldung weil auf die
Connection nicht zugegriffen werden kann.
All das passiert noch vor dem OnCreate-Event.
Hi sx2008,

ich arbeite seit Delphi 1 (!) mit derartigen Komponenten. Dem was Du schreibst kann ich nicht ganz zustimmen. Was da passiert (ich habe es mittlerweile gelöst) hat nichts mehr mit dem eigentlichen Programm zu tun. Wer da reinspuckt ist die IDE. Den Initialisierungsablauf vom Programm habe ich im Griff (Reihenfolge und Zeitpunkte der Initialisierungen). Wäre ja auch ein ziemlicher Blödsinn, wenn man jedesmal nach dem Öfnnen einer Tabelle oder einer sonstigen Datenverbindung wieder die Connection suchen müsste und die dann schließt, ehe man das Programm startet. Wäre mir persönlich sehr unangenehm und nicht im Sinne von RAD.

Kurzum: Das Problem hängt mit den Projektgruppen der IDE zusammen. Es tritt dann auf, wenn man eine Gruppe definiert hat und dann Abhängigkeiten (Projekt->Abhängigkeiten) definiert. Ich habe fälschlicherweise angenommen, dass die Projektgruppen bei Delphi 2010 endlich mal korrekt funktionieren. Sobald man die Abhängigkeiten wieder deaktiviert läuft alles bestens. Warum das Ganze so Problem bereitet ist mir nach wie vor ein Rätsel. Fakt ist: Die IDE hat am Code herumgefummelt ehe das eigentliche Programm (die EXE) überhaupt gestartet wurde...

Gruß
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat