Hola foro trabajo con IBExpert V.2004.01.22 y firebird 1.5 y tengo un problemilla con la siguiente consulta
Código SQL
[-] execute statement 'Select Cen_lp, Pte_lp, Pes_lp, Lof_lp, Npr_lp, Fre_lp, ' ||
'Web_lp, Res_lp from mb' || old.ape_la || 'linped ' ||
'where num_lp = ' || old.npe_la || 'and ano_lp = ' || old.ape_la ||
'and lin_lp = ' || old.lin_la
into :CEN, :PTE, :PES, :LOF, :NPR, :FRE, :WEB, :RES;
el valor que se me almacen en la variable CEN es incorrecto, esta variable es de tipo NUMERIC(15,2) al igual que el campo Cen_lp y en dos pruebas realizadas me devuelve el valor correcto / 100.
Como este campo normalmente no tiene decimales declare la variable CEN como INTEGER e hice la siguiente consulta obteniendo el resultado deseado
Código SQL
[-] execute statement 'Select Cast(Cen_lp as integer), Pte_lp, Pes_lp, Lof_lp, Npr_lp, Fre_lp, ' ||
'Web_lp, Res_lp from mb' || old.ape_la || 'linped ' ||
'where num_lp = ' || old.npe_la || 'and ano_lp = ' || old.ape_la ||
'and lin_lp = ' || old.lin_la
into :CEN, :PTE, :PES, :LOF, :NPR, :FRE, :WEB, :RES;
También me daba un error similar otro campo del mismo tipo, el valor de este campo acabe sacandolo haciendo calculos en otra tabla donde podia realizar la consulta directamente sin necesidad de utilizar el Execute Statement.
Después de todo este rollo mi pregunta es si alguno de vosotros sabe a qué puede ser debido este problema.
Un Saludo y muchas gracias