![]() |
TTable Datei löschen
Hallo Leutz!
Ich erstelle mit dem FormCreate Ereignis eine Datei, die ich anschliessend an eine TTable-Komponente binde. Active wird danach auf True gesetzt. Beim Ereignis FormClose möchte ich diese Datei wieder löschen. Dazu setze ich Active auf False, aber löschen lässt sich die Datei dann nicht. Was muss denn noch erfüllt sein, damit ich die Datei löschen kann? Danke für Eure Tipps! Michael |
Re: TTable Datei löschen
Hallo glunzl,
zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum. Nun zu deiner Frage: Eigentlich sollte das Schließen der Tabelle ausreichen, um die zugrundeliegende Datei löschen zu können. Versuche vielleicht mal ChachedUpdate auf False zu setzen, damit nicht mit Zwischenspeichern gearbeitet wird. |
Re: TTable Datei löschen
Mit dem BDE-Krempel kenne ich mich überhaupt nich aus, aber eine Gegenfrage habe ich da:
Warum eine Tabelle erstellen um sie beim Schließen wieder zu löschen? |
Re: TTable Datei löschen
hallo mr spock!
Zitat:
aber gott sei dank tut sie das ohnehin nicht so leichtfertig, ausser man experimentiert mit 'deletetable' :mrgreen: mfg, stefan |
Re: TTable Datei löschen
hallo glunzl!
also normalerweise löscht man tabellen nicht beim beenden des programmes, ausser es handelt sich um temporäre tabellen. zieh dir eine TTable-komponente auf die IDE, markiere sie und drück auf F1. unter den methoden des tables wirst du ausdrücke wie DeleteTable oder EmptyTable finden. und eines der beiden passt für dein vorhaben. mfg, stefan |
Re: TTable Datei löschen
Hallo grayfox,
:shock: da hab ich mich wohl falsch ausgedrückt. Ich meinte, dass das Schließen der Tabelle diese frei gibt, sodass sie anschließend gelöscht werden kann. Natürlich wird sie nicht automatisch gelöscht :stupid: . |
Re: TTable Datei löschen
@ MrSpock: Danke für's Willkommen :-)
@all: Die Tabelle wird als tempöräre Tabelle/Datei genutzt. In diese sollen Inhalte aus andere Tabellen eingefügt werden, um diese dann auszuwerten. Z.Z. sieht das so aus:
Delphi-Quellcode:
Bei Table_Temp.DeleteTable tritt dann eine Exception der Klasse EDBEngineError, Meldung "Ungültiger Dateiname" auf.
procedure TForm1.FormCreate(Sender: TObject);
var begin // ... erzeugen der der Temp-Datei ... Try Table_Temp.DatabaseName := GetTempFolder ; Table_Temp.TableName := 'VA_TEMP.dbf' ; Table_Temp.Active := True ; Except Application.MessageBox('Die temp. Tabelle konnte nicht an die temp. Datei gebunden werden', 'Visuanalyse', 48) ; End ; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin // Löschen der Temp Datei Table_Temp.Active := False ; Table_Temp.DeleteTable ; If FileExists(GetTempFolder + 'VA_TEMP.dbf') Then If not DeleteFile(GetTempFolder + 'VA_TEMP.dbf') // TempDatei löschen Then Application.MessageBox('Die temporäre Datei konnte nicht gelöscht werden.' , 'Visuanalyse', 48) ; Wenn ich die Zeile Table_Temp.DeleteTable rausnehme, erscheint halt meine MessageBox, das die Datei nicht gelöscht werden konnte. Wenn ich Table_Temp.DeleteTable durch Table_Temp.EmptyTable ersetze, tritt an der Stelle eine Exception der Klasse EDBEngineError, Meldung "Ungültiger Parameter" auf. Nach meinem Verständniss, müsste ich doch nur die "Verbindung" von der Tabelle zur Datei lösen und könnte sie dann löchen. Aber scheinbar langt Table_Temp.Active := False ; nicht. Kann mir noch jemand weiterhelfen? Gruss Michael [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: TTable Datei löschen
@Sharky: Danke! Wieder was gelernt ...
Michael |
Re: TTable Datei löschen
Hai glunzl,
ich vermisse bei deinem Code ein .CreateTable. Wenn die Tabelle nur temporär vorhanden ist musst Du sie doch auch irgendwann erzeugen. |
Re: TTable Datei löschen
@Sharky: Ich habe mir eine TTable-Komponennte auf meine Form gezogen. Muss sie dann nicht nur im Objektinspektor eingestellt werden? Zur Laufzeit stelle ich dann die andreren Eigenschaften ein.
Die Datei wird ja angelegt, sehe ich ja. Nur das löschen will nicht ... Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz