Entwickler-Ecke

Datenbanken - Tabelle ist schon in Gebrauch


colaka - Mi 16.01.08 08:24
Titel: Tabelle ist schon in Gebrauch
Hallo,

ich erzeuge in meinem Programm mehrfach eine tempöräre Paradox-Tabelle, die dann mit Werten zur weiteren Verarbeitung gefüllt wird. Das klappt auch ganz gut, solange ich die Tabelle nur einmal erzeuge. Mache ich das ein zweites Mal, kommt die Meldung "Tabelle ist schon in Gebrauch". Also füge ich vor "try TableTemp := TTable.Create(self)" ein: if TableTemp.Active then TableTemp.Close. Dann kann ich die Tabelle mehrmals erzeugen und das ganze Programm funktioniert. Aber nur, bis ich meinen Rechner neu starte, denn dann hängt sich der Rechner schon bei if TableTemp.Active auf. Auch "try TableTemp.close" führt zum Aufhängen.

Es wäre schön, wenn mir hier jemand einen Tippp geben könnte.

Danke


mkinzler - Mi 16.01.08 08:45

Du fragst ja nicht, ob die das Objekt schon existiert, sondern ob es aktiv ist.
if not Assigned(TableTemp) überprüft das Objekt. Wenn du die Tabelle öfters brauchst, warum definierst du diese dann nicht fest, sondern erzeugst immer eine neue?
Außerdem gibst du die alten tabellenobjekte ja nicht frei, sondern schließt diese nur und erzeugst dann ein neues.