Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Возвращает не точное значение

23K
21 апреля 2008 года
Gluckodrom
30 / / 08.01.2008
Написал процедуру, которая подсчитывает некоторые суммы и выводит их
 
Код:
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
23K
23 апреля 2008 года
Gluckodrom
30 / / 08.01.2008
решил проблему!
Просто в процедуре выходные параметры объявил не как NUMERIC(10,2), а как DOUBLE PRECISSION. И все решилось. Из Delphi забирал как AsFloat.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог