Da sind immer noch Fehler drin.
Die Zuweisung an
SQL.Text
beinhaltet automatisch ein
SQL.Clear
.
SQL.Clear ist hier also überflüssig.
Aber das eigentliche Problem ist, dass du dein Code-Fragment mehrfach aufrufst.
Immer wieder
SQL.Text zuzuweisen ist aber unfein, denn dies löst intern in der Komponente einiges an Arbeit (Parsen der Parameter, Datenbankanfrage wegen den Datentypen) aus.
Die saubere Lösung wäre also den
SQL.Text ausserhalb der Schleife zuzuweisen.
Und auch das
Active := False
ist eine überflüssige Anweisung.