Datenmodul mit Connected=True



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=False 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.
.



Relevant Pages

  • =?iso-8859-1?Q?RE:_Datenbank_von_DataSet_zur_Laufzeit_=E4ndern?=
    ... Betreff: Re: Datenbank von DataSet zur Laufzeit ändern ... Die Partielle Klasse habe ich mittlerweilen gefunden. ... Partial Class dsMeineDaten ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: Zugriff auf VS-Projektdateien
    ... ich ähnliches mit einer Access-Datenbank gemacht, die zur Laufzeit angelegt ... Da Access bzw. Jet nicht die Möglichkeit bietet, eine Datenbank ... Mit folgenden Anweisungen kann ich die Ressource zur ... Ich habe das Schema in VS manuell erstellt und möchte es ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Passende Datenstruktur?
    ... > Martin Mohr wrote: ... >> Laufzeit verwaltest um effizient darauf zuzugreifen, ... > Daten aus einer Datenbank zur Laufzeit komplett in den Speicher zu lesen ...
    (de.comp.lang.perl.misc)
  • Re: dataset neu füllen
    ... > also mit einer Abfrage die da lautet: select top1 from customers und lasse ... Zur Laufzeit wird ein neuer SQL-String erzeugt, ... > Private Overloads Sub oBtnFind_Click(ByVal sender As System.Object, ... welche Datenbank sprichst du an? ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)