Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TTable Datei löschen (https://www.delphipraxis.net/18591-ttable-datei-loeschen.html)

glunzl 21. Mär 2004 17:44


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

MrSpock 21. Mär 2004 21:33

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.

Robert_G 21. Mär 2004 21:35

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?

grayfox 21. Mär 2004 22:02

Re: TTable Datei löschen
 
hallo mr spock!

Zitat:

Eigentlich sollte das Schließen der Tabelle ausreichen, um die zugrundeliegende Datei löschen zu können.
das wäre aber ganz tragisch, wenn beim schliessen des tables die dahinterliegende tabelle gelöscht würde. furchtbar, nicht auszudenken.
aber gott sei dank tut sie das ohnehin nicht so leichtfertig, ausser man experimentiert mit 'deletetable' :mrgreen:

mfg, stefan

grayfox 21. Mär 2004 22:07

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

MrSpock 21. Mär 2004 22:18

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: .

glunzl 22. Mär 2004 09:19

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:
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) ;
Bei Table_Temp.DeleteTable tritt dann eine Exception der Klasse EDBEngineError, Meldung "Ungültiger Dateiname" auf.
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]

glunzl 22. Mär 2004 09:22

Re: TTable Datei löschen
 
@Sharky: Danke! Wieder was gelernt ...

Michael

Sharky 22. Mär 2004 09:29

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.

glunzl 22. Mär 2004 09:46

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 09:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz