![]() |
TQuery - Tabelle wird nicht geschlossen
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. Ich habe schon alles? versucht:
Delphi-Quellcode:
aber er will einfach nicht gehen. Ich bekomme immer einen Fehler bei DeleteFile - Datei wird von einem anderen Programm benutzt...
Query.Close;
Query.Active := False; AdsConnection.Disconnect; Auch mit dem Öffnen einer anderen Tabelle
Delphi-Quellcode:
konnte ich nichts anrichten, und bei
Query.SQL.Text := 'SELECT * FROM AndereTabelle'
Delphi-Quellcode:
beschwert er sich, ich hätte nicht die Rechte das zu machen.
Query.DeleteTable;
Wie kann ich also dem Query beibringen, es soll gefälligst die Tabelle loslassen? mfg mandumoal |
Re: TQuery - Tabelle wird nicht geschlossen
Zitat:
|
Re: TQuery - Tabelle wird nicht geschlossen
Ne, kann nicht sein, die Tabelle wird erst zur Laufzeit erstellt und auch von keinem anderen Query/Table verwendet.
-> im OI ist sie niemals Active :roll: |
Re: TQuery - Tabelle wird nicht geschlossen
Könnte vielleicht mal jemand das was ich beschrieben habe ausprobieren?
Das wäre super! Man muss im Prinzip nur eine Datenbank mit einem Query öffnen:
Delphi-Quellcode:
Das wäre es schon.
Query.SQL.Text := 'SELECT * FROM "' + NamederTabelle + '"';
Query.ExecSQL; Query.Active := False; if DeleteFile(NamederTabelle) then ShowMessage('Gelöscht') else ShowMessage('Noch da'); Wär sehr nett wenn es jemand ausprobieren könnte :P (Oder natürlich einfach die Lösung hier posten :stupid: , also wie ich die Tabelle wieder frei kriege) mfg mandumoal |
Re: TQuery - Tabelle wird nicht geschlossen
Zitat:
Delphi-Quellcode:
Das schliesst aber alle Tabellen durch das IsConnected := false. Es gibt alternativ noch die Möglichkeit über SQL:
// 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);
Delphi-Quellcode:
SQL.Clear;
SQL.Add('drop table '+sTableName); try ExecSQL; except end; |
Re: TQuery - Tabelle wird nicht geschlossen
Zitat:
Besser als das brachiale Löschen von Dateien ist es auf jeden Fall. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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