Statt
SQL-Code:
...
select count(id) from baum where Parent = :iparent into :anz;
if (:anz > 0) then
...
lieber
SQL-Code:
...
if exists (select id from baum where Parent =:iparent) then
...
Ist vermutlich viel schneller, denn 'Count(*)' zählt alle und geht dabei alle (passenden) Datensätze durch, während 'exists' beim ersten Datensatz abbricht.
Das Bild hängt schief.