Da kann ich Dieter nur zustimmen.
Die Reihenfolge der Whereklausel ist bei Vergleichen ungleich "=" von entscheidender Bedeutung:

where F1 between :#V1 and :#V2
and F2 between :#V3 and :#V4

Wenn V1 = Minval und V2 = Maxval wird ein Tablescan erzwungen.

Und was das obige Zusammenstricken angeht so wird da nicht auf enthaltene Hochkommata innherhalb von Strings eingegangen.
In der Web-Community wird diesbezüglich auch auf SQL-Injection hingewiesen, wenn Eingabefelder vom Frontend kommen.
Du brauchst z.B. in StatVon-Variable nur eine Eingabe
=> ' or 1=1 or '
Und schon erhältst du alle Daten für die du u.U. nicht berechtigt bist.
Hostvariablen (Parametermarker) schützen vor SQL-Injection.