Weil's mich nicht losgelassen hat, hab ich versucht das nachzuvollziehen.
Die Connection wird durch den Aufruf von Excute NICHT getrennt.
Die angelegte temporäre Tabelle existiert auch über mehrere getrennte Execute's,
aber es funktioniert dennoch nicht:
Hier gibts den Fehler "Tabelle existiert nicht"
Delphi-Quellcode:
MyQuery1.SQL.Clear;
MyQuery1.Sql.Add('CREATE TEMPORARY TABLE tmp (ID int NOT NULL AUTO_INCREMENT, PID Int, PRIMARY KEY (ID)) ENGINE=INNODB;');
MyQuery1.Execute;
MyQuery1.SQL.Clear;
MyQuery1.Sql.Add('INSERT INTO tmp(PID) VALUES (2);');
MyQuery1.Execute;
Hier knallts auch weil die Tabelle "tmp" bereits existiert
Delphi-Quellcode:
MyQuery1.SQL.Clear;
MyQuery1.Sql.Add('CREATE TEMPORARY TABLE tmp (ID int NOT NULL AUTO_INCREMENT, PID Int, PRIMARY KEY (ID)) ENGINE=INNODB;');
MyQuery1.Execute;
MyQuery1.SQL.Clear;
MyQuery1.Sql.Add('CREATE TEMPORARY TABLE tmp (ID int NOT NULL AUTO_INCREMENT, PID Int, PRIMARY KEY (ID)) ENGINE=INNODB;');
MyQuery1.Execute;
Ja wie denn jetzt, entweder sie existiert oder sie existiert nicht?!