Wenn wir mal folgende Abfrage anschauen
SQL-Code:
-- Beispiel 1
SELECT :pOrtsteil, orte.id FROM orte
dann ergibt sich schon mal das Problem dass der Parameter :pOrtsteil keinen definierten Datentyp (varchar, int, float,... ?) haben kann, da der Parameter an keine Spalte gebunden ist.
Selbst der Feldname ist quasi undefiniert.
Bei folgender Abfrage wäre dann wenigstens der Feldname definiert
SQL-Code:
-- Beispiel 2
SELECT :pOrtsteil AS pOrtsteil, orte.id FROM orte
aber so richtig hilft das auch nicht weiter.
ADO bzw. die
VCL kann keinen Parameter erzeugen!
Somit wäre also gezeigt, dass Parameter zwischen SELECT und FROM nicht funktionieren können.
Es sei denn, man würde den Parameter per Code erzeugen, wobei dann nicht gesagt ist, dass das funktioniert.
Damit wäre erklärt, weshalb
INSERT INTO ortsteile (ortsteile, orte_id) SELECT :pOrtsteil, orte.id FROM orte WHERE orte.ort=:pOrt AND orte.plz=:pPLZ
nicht funktioniert.