Einzelnen Beitrag anzeigen

bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#1

temporäre Tabelle in MS SQL Server

  Alt 22. Jun 2004, 15:00
Hallo,

ich habe folgendes Problem: Ich möchte über Delphi eine temporäre Tabelle in MS SQL Server erzeugen. Das mache ich wie folgt:

Delphi-Quellcode:
  with TADOQuery.Create(WPDataModule) do
  try
    Connection := WPDataModule.Connection;
    SQL.Clear;
    SQL.Add('SELECT * INTO #TempTable FROM MyTable');
    ExecSQL;
  finally
    Free;
  end;
Das blöde ist: Die Tabelle ist hinterher nicht mehr vorhanden. Auch wenn ich die gleiche TADOQuery verwende und nach dem ExecSQL z.B. folgendes schreibe:

Delphi-Quellcode:
    SQL.Clear;
    SQL.Add('DROP TABLE #TempTable');
    ExecSQL;
Auch dann ist die temporäre Tabelle schon weg. Nur wenn ich sowohl den SELECT- als auch den DROP-Befehl in die SQL-Eigenschaft packe und dann erst ExecSQL aufrufe, ist die Tabelle beim zweiten Befehl noch sichtbar.

Für private, temporäre Tabellen (also die, die bei MS SQL Server mit einem # beginnen) gilt, dass NUR die Verbindung, die die Tabelle angelegt hat, auch auf die Tabelle zugreifen kann. Offenbar beendet Delphi die Verbindung also sofort nach dem ExecSQL.

Frage: Gibt es eine Möglichkeit, die Verbindung offen zu halten? Welche Möglichkeit(en) gibt es sonst?

Marcus
  Mit Zitat antworten Zitat