Also ganz simpel:
Überall, wo du variable Werte benötigst, gibst du ein "?" als sog. Parametermarker ein.
Dann machst du deinen Prepare und beim Execute (oder auch execute immediate ohne Prepare) führst du dann deine Hostvariablen an.

Stmt = "insert into mytable (F1, F2, F3) values(?, ?, ?)"
prepare InsertMyTable from : Stmt;
execute InsertMyTable using : F1, : F2, : F3;

Stmt = "Select f1, f2, f3 from mytable where F1=? and F2=? and F3=?"
prepare SelectMyTable from : Stmt;
declare GetMyTable cursor for SelectMyTable;
open GetMyTable using : F1, : F2, : F3;
fetch GetMyTable into : DS.F1, : DS.F2, : DS.F3;

Alles kein Hexenwerk.
- volle Unicodeunterstützung der Variablen
- Typanpassung falls erforderlich
- NULL-Anzeiger wie immer ": V1 : N1"
- Fetch dann in benannte Variablen (mittels using SQLDA geht es auch absolut flexibel)
- keine Hochkomma-Probleme!