Hi dedlfix,
DELETE erzeugt keine Ergebnismenge. Und es würde mich wundern, wenn es eine erzeugen würde, die mit einem nachfolgenden Statement abzufragen geht.
…
Die Datensätze, die vom WHERE betroffen sind, kann man sehr gut auch vorher per SELECT ermitteln. Man kann sich das Umständliche also sparen.
Ja, genau das habe ich auch gemacht.
Es geht noch andere Wege, besonders wenn die Wahrscheinlichkeit hoch ist, dass zwischen Select und Delete Änderungen in der Menge auftreten könne, und das berücksichtigt werden muss. Wird aber alles umständlicher.
- Selektiere die IDs der zu löschenden Datensätze, und erzeuge daraus eine Temporary Table (INSERT ... SELECT ...).
- Lösche die Datensätze, deren IDs in der Temptable sind.
- Selektiere alle Daten der Temptable mit einem normalen SELECT und Fetchen.
- Schließe die Verbindung, Temptable wird dabei gelöscht.
Danke für den Tip. Werde ich so machen, wenn das Problem nochmal auftaucht. In diesem Fall bin ich fündig geworden, was den fehler im Programm anging.
Pit