Temporäre Tabellen löschen [ERLEDIGT]

Advantage Database Server

Moderator: Moderatoren

Antworten
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Temporäre Tabellen löschen [ERLEDIGT]

Beitrag von UliTs »

Ich möchte eine temporäre Tabelle löschen. Eigentlich ganz einfach:

Code: Alles auswählen

DROP TABLE #TmpFilename
Blöderweise habe ich zuvor auf diese Tabelle sowohl mit SQL-Befehlen:

Code: Alles auswählen

UPDATE #TmpFilename SET ... WHERE ...
als auch mit

Code: Alles auswählen

AdsOpenTable
AdsCloseTable
zugegriffen. Leider lässt sich in diesem Fall die Tabelle nicht löschen...
Vermutlich wird die Tabelle intern aufgrund der Sql-Befehle wegen Optimierung noch offen gehalten. Ich meine, dass war einstellbar. Aber wie?
-
Nichts desto trotz sollte es meines Erachtens in so einem Fall möglich sein, die Tabelle ohne weitere Kraftakte löschen zu können :? .

Uli
Zuletzt geändert von UliTs am Mo, 13. Mai 2013 17:29, insgesamt 1-mal geändert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 409
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von nightcrawler »

AdsCloseCachedTables vorher aufrufen, damit der interne File-Cache geleert wird.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von UliTs »

nightcrawler hat geschrieben:AdsCloseCachedTables vorher aufrufen, damit der interne File-Cache geleert wird.
Vielen Dank für die Hilfe!
Ich habe AdsCloseCachedTables umgesetzt und aufgerufen. Klappt auch ohne Fehlermeldung.
Aber das Löschen der temporären Tabelle klappt leider weiterhin nicht :-( .
Wenn ich den folgenden SQL-Befehl nicht ausführe, funktioniert es jedoch:

Code: Alles auswählen

INSERT INTO #TmpFilename
SELECT FAu.*
FROM Filename FAu
WHERE FAu.FAuId=291959
Ich bin ratlos...

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 409
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von nightcrawler »

Das SQL Statement kann man über AdsCloseSQLStatement schließen und somit die Tabellen-Handles befreien. HTH
PS: Bin leider zuwenig in Xbase++ und API unterwegs...in Delphi ist das alles gekapselt;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von UliTs »

Das SQL-Statement wird über AdsCloseSQLStatement geschlossen.
Das kann leider nicht die Ursache sein :( .
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von UliTs »

Mir ist gerade noch aufgefallen, dass das Advantage Configuration Utility für Work Areas folgendes angezeigt hat:
  • max used 168
    configured 125
Kann es vielleicht damit zusammenhängen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 409
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von nightcrawler »

UliTs hat geschrieben:Mir ist gerade noch aufgefallen, dass das Advantage Configuration Utility für Work Areas folgendes angezeigt hat:
  • max used 168
    configured 125
Kann es vielleicht damit zusammenhängen?

Uli
nein, ich denke nicht. Die Konfiguration gibt die initialen Größen der internen Speicherbereiche an. Die Bereiche werden aber dynamisch angepaßt, falls mehr Work Areas, Connections, Tables, ... benötigt werden.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen

Beitrag von UliTs »

Ich habe noch eine Idee: kann es vielleicht mit fehlerhaft eingesetzten Transaktionen zusammenhängen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2730
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 73 Mal
Danksagung erhalten: 5 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen [ERLEDIGT]

Beitrag von UliTs »

Also, es ist tatsächlich so, dass das Löschen der temporären Tabelle innerhalb einer Transaktion fehl schlägt!
Ich habe die Tabelle einfach auf "IGNORE TRANSACTIONS" gesetzt und schon war das Problem gelöst :-) .

Uli

P.S. Vielen Dank für die Hilfe
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 19916
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 41 Mal
Danksagung erhalten: 29 Mal

Re: Temporäre Tabellen löschen

Beitrag von Manfred »

nightcrawler hat geschrieben: Mo, 13. Mai 2013 12:57 AdsCloseCachedTables vorher aufrufen, damit der interne File-Cache geleert wird.
aber wie rufe ich das unter xBase++ auf? Oder im Architekten?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, Hauptsache pfiffig!!
Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 279
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 3 Mal
Danksagung erhalten: 29 Mal
Kontaktdaten:

Re: Temporäre Tabellen löschen [ERLEDIGT]

Beitrag von Marcus Herz »

Das ist eine API Funktion von ADS. In AdsClass++ ist das enthalten, du musst das mit DllCall aufrufen. Da gibts doch sicher Beispiele bei Roger
- im Arc gar nicht möglich
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Antworten