SELECT SUM(ABON_PL), SUM(ABON_PL_i),SUM(ABON_PL_o),SUM(MP),SUM(DT_MP),SUM(PERERASCHET),SUM(DU),SUM(OPLATA) FROM
(SELECT raschet.ABON_PL, raschet.MP, raschet.DT_MP, raschet.ABON_PL_i, raschet.ABON_PL_o,
raschet.PERERASCHET, raschet.DU, raschet.ITOG, raschet.OPLATA, raschet.G_M, base_main.Status
FROM raschet, base_main
WHERE base_main.status<>'Физ.лицо' and base_main.N_tel = raschet.N_tel and raschet.G_M = :pG_M)
INTO :rABON_PL_UL, :rABON_PL_i_UL, :rABON_PL_o_UL, :rMP_UL, :rDT_MP_UL, :rPERERAS_UL, :rDU_UL, :rOPLATA_UL;
Возвращает не точное значение
Код:
Забираю данные из Delphi 7.0 таким кодом в TStringGrid
Код:
StGr_itog.Cells[1,1]:=FloatToStrF(ParamByName('rABON_PL_UL').AsBCD,fffixed,10,2);
Если выполнять процедуру из IBX, то возвращает значения с точностью 2, т.е. как и должно быть.
Но если забирать данные через Delphi, то данные возвращает он с точностью 1, при этом просто обрезанные, а не округленные.
В параметрах процедуры в Delphi ставил точность возвращаемых данных "2". Все равно не помогло.
В чем может быть проблема? Подскажите, пожалуйста.
FireBird 2.0 + IBX + Delphi 7.0
Просто в процедуре выходные параметры объявил не как NUMERIC(10,2), а как DOUBLE PRECISSION. И все решилось. Из Delphi забирал как AsFloat.