![]() |
Datenbank: MS SQL-SERVER • Version: 2005 • Zugriff über: ADO
Globale Temporäre Tabellen verschwinden ...
Hallo Zusammen,
folgender Effekt tritt bei mir auf. Meine Anwendung erzeugt beim Start ne globale temporäre Tabelle (##Tabelle) auf nem MS SQL-Server. Dieses Anwendung läuft dann ununterbrochen als Dienst auf dem PC weiter. Nach ner gewissen Zeit ist die temporäre Tabelle dann auf dem SQL-Server verschwunden, obwohl ich die Verbindung zwischen Anwendung und SQL-Server nicht trenne. Hat jemand ne Ahnung an was das liegen könnte? Gibt es evtl. eine beschränkte "Lebensdauer" für temporäre Tabellen, wenn diese nicht verwendet werden? Gruß Micha |
Re: Globale Temporäre Tabellen verschwinden ...
Zitat:
Aber zur peristenten Speicherung sind die ja auch nicht gedacht. :angel2: |
Re: Globale Temporäre Tabellen verschwinden ...
Hallo,
das mein ich ja. Meine Verbindung ist durchaus noch aktiv. Ich greife nur gerade nicht auf die Tabelle zu. Dann dürfte die Tabelle laut Deiner Definition nicht gelöscht werden. Ich benutze die temporäre Tabelle übrigens, damit eine andere meiner Anwendungen erkennt, ob der Dienst (der die Tabelle ja erzeugt) gerade läuft. Gruß Micha |
Re: Globale Temporäre Tabellen verschwinden ...
Ein Verbindung zur DB, die gerade nix tut, kann durchaus von der DB getrennt werden. Stichwort: ConnectionPooling.
Mache einfach mal in regelmässigen Abständen irgendeinen banalen Request an die DB, und schaue, ob dass die glob. temp. Tabelle immer noch verschwindet. |
Re: Globale Temporäre Tabellen verschwinden ...
Alles klar, ich werd's probieren. Oder ich verzichte doch ganz auf die temporäre Tabelle und schreibe das Programm um.
Gruß Micha |
Re: Globale Temporäre Tabellen verschwinden ...
Da fällt mir folgendes ein... Erstelle dir mal in der DB folgende View:
SQL-Code:
Sie gibt dir alle aktiven Verbindungen zur Datenbank an. Wenn du jetzt noch dein ConnectionString durch
create view vwRunningProcesses
as select d.name as DBName, p.Hostname as Host, p.Program_name as Program, p.login_time as LoginTime, p.last_batch as LastBatch, p.Loginame, p.nt_domain, p.nt_username from master.dbo.sysprocesses p inner join master.dbo.sysdatabases d on p.dbid=d.dbid where d.name = db_name()
Code:
ergänzt, so siehst du in der View sofort, ob eine Anwendung läuft oder nicht...
...;APP=YourApplication
Ist, denk ich, eleganter als die Notlösung über eine temporäre Tabelle. |
Re: Globale Temporäre Tabellen verschwinden ...
So hab ich's inzwischen auch gemacht :-)
Trotzdem Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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-2025 by Thomas Breitkreuz