Tal vez no vayan por ahí los tiros pero según veo en tu código estás haciendo un moldeado de tipo en la siguiente sentencia:
Código Delphi
[-]
...
if (DataModule2.IBSQL1.FieldByName('value_type').AsString)='INT' then
sSqlstatement := 'SELECT MIN(cast(t.svalue as float)) as Minimo'+
', MAX(cast(t.svalue as float)) as Maximo'
...
¿Has comprobado que, efectívamente,
t.svalue contiene un valor numérico válido?
Saludos!