Hola,
Acaso esté diciendo una tontería, pero, a bote pronto se me ha ocurrido invertir el orden de las instrucciones... ya dirás si te va bien o qué...
Código Delphi
[-]
IBClientDataSet1.Close;
IBClientDataSet1.Params.ParamByName('INI').Value := Ini.DateTime;
IBClientDataSet1.Params.ParamByName('fIN').Value := fIn.DateTime;
IBClientDataSet1.CommandText:= 'SELECT * FROM PRC_INVENTARIO_GETCATEGORIAS (:INI, :FIN)';
IBClientDataSet1.Open;