Datenmodul mit Connected=True
Von: Matthias Hanft (mh@hanft.de) [Profil]
Datum: 12.09.2007 09:39
Message-ID: <46E797B9.6020507@hanft.de>
Newsgroup: de.comp.lang.delphi.datenbanken
Datum: 12.09.2007 09:39
Message-ID: <46E797B9.6020507@hanft.de>
Newsgroup: de.comp.lang.delphi.datenbanken
Hallo, für den Zugriff auf eine bestimmte Datenbank baue ich üblicher- weise ein (zur Laufzeit dynamisch erzeugtes) Datenmodul, in dem sich eine IBDatabase befindet, deren Eigenschaft "Connected" bereits zur Entwicklungszeit auf "True" steht - dann spare ich mir das Öffnen zur Laufzeit. Das funktioniert auch ganz wunderbar, allerdings bin ich mir nicht sicher, ob das der richtige Weg ist, wenn zur Laufzeit ein Fehler beim Öffnen der Datenbank passiert (z.B. Datenbank- server nicht erreichbar o.ä.). Ich vermute, die dann fällige Exception passiert beim Anlegen des Datenmoduls?, so daß ich dann wohl schreiben müßte try myDataModule:=TMyDataModule.Create(nil); try myDataModule.TuWas except // Fehlerbehandlung für TuWas-Fehler end; myDataModule.Free except // Fehlerbehandlung für Datenbank-Öffnen-Fehler; // .Free nicht nötig, da wegen Exception bei Create // gar nicht erst angelegt end; Stimmt das so richtig? Zusatzfrage: Was wäre, wenn man in TMyDataModule.OnCreate z.B. eine TStringList anlegen (und in .OnDestroy freigeben) würde? Speicherleck, oder funktioniert automagisch? (Im letzteren Fall: Lebt die TStringList ein paar Millisekunden lang, oder würde sie gar nicht erst geboren?) Die gleiche Frage für den Fall, daß man einen eigenen Construc- tor baut, und darin z.B. schreibt inherited Create(nil); FStringList:=TStringList.Create; und einen eigenen Destructor FStringList.Free; inherited Destroy; und dann beim Create auf die Datenbank nicht zugegriffen werden kann - klappt?, oder Probleme? Lebt die TStringList mal kurz? Oooooder sollte man solche Dinge grundsätzlich vermeiden, indem man zur Entwicklungszeit Connectedúlse setzt, das Create dadurch (i.d.R.) niemals schiefgehen läßt und dem Datenmodul eine Property Connected spendiert, die der aufrufende Prozeß nach dem (i.d.R. immer erfolgreichen) Create prüfen kann? Wie ist da der "gute" Programmierstil? Danke & Gruß Matthias.[ Auf dieses Posting antworten ]
Antworten
- Marian Aldenhövel (12.09.2007 10:19)
- Matthias Hanft (12.09.2007 17:16)
- Martin Behrens (12.09.2007 21:09)
- Matthias Hanft (13.09.2007 09:45)
- Marian Aldenhövel (13.09.2007 10:04)
- Matthias Hanft (13.09.2007 19:49)
- Matthias Hanft (14.09.2007 08:35)
