Es raro, yo utilizo el mismo sistema en algunos procedimientos con la diferencia que utilizo close y open
Código Delphi
[-]DataModulo.QBuscar.close;
DataModulo.QBuscar.SQL.Clear;
DataModulo.QBuscar.SQL.Add('select * from ciclo where ciclo=:cic');
DataModulo.QBuscar.Parameters.ParamByName('cic').asinteger:=ciclob;
DataModulo.QBuscar.open;
Fijate con esta forma tal ves el problema sea en el sql.text, yo lo utilizo de esta manera.
A y le digo que tipo de parametro le paso con asTIPODATO
Espero que te sirva