Zitat von
mandumoal:
Hallo!
Ich arbeite mit einem TAdsQuery [local] und versuche krampfhaft die geöffnete Tabelle wieder so "freizugeben", dass ich sie mittels DeleteFile löschen kann.
aber er will einfach nicht gehen. Ich bekomme immer einen Fehler bei DeleteFile - Datei wird von einem anderen Programm benutzt...
Wie kann ich also dem
Query beibringen, es soll gefälligst die Tabelle loslassen?
Du musst das nicht dem
Query, sondern dem ADS beibringen, denn der cached die Tabellen noch einige Zeit:
Delphi-Quellcode:
// Einbinden ADS Low-Level
uses ace;
// Alle Tabellen auf jeden Fall schliessen
Ace.AdsCacheopenCursors(0);
AdsConnection.CloseCachedTables;
AdsConnection.IsConnected := false;
// Wieder auf den im Treiber definierten Standardwert setzen
Ace.AdsCacheopenCursors(25);
Das schliesst aber alle Tabellen durch das IsConnected := false. Es gibt alternativ noch die Möglichkeit über
SQL:
Delphi-Quellcode:
SQL.Clear;
SQL.Add('
drop table '+sTableName);
try
ExecSQL;
except
end;