Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 13:51   #1
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию Пропустить значение Null при просчете

У меня есть база созданная в Парадокс в котором есть поле Curency - цена.
мне нужно просумировать все значения это поля. Я написал такой код:
Код:
var
summ : Real; 
begin
summ := 0;
while not fDM.Table1.Eof do begin
summ := summ + fDM.Table1['Cena'];
fDM.Table1.Next;
end;
Label3.Caption := 'На общую сумму: ' +
FormatFloat('0,000.00', summ);
end;
Однако, если при работе программы поле цены оставить пустым то получается ошибка Could not convert variant of type (Null) into type (Double)
Подскажите как сделать чтоб если данные не заполнены, то считалось как 0 или совсем не участвовало в расчетах это поле.

Последний раз редактировалось Stilet; 01.08.2011 в 14:40.
Serebah вне форума Ответить с цитированием
Старый 01.08.2011, 13:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Попробуйте
Код:
summ := summ + fDM.Table1.FieldByName('Cena').AsFloat;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.08.2011, 14:37   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если ВДРУГ совет от Аватар'а не поможет...
тогда можно попробовать так:
Код:
if  Not fDM.Table1.FieldByName('Cena').IsNull then
    summ := summ + fDM.Table1.FieldByName('Cena').AsFloat;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.08.2011, 14:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
while not fDM.Table1.Eof do begin
if not fDM.Table1.FieldByName('Cena').IsNull then
summ := summ + fDM.Table1['Cena'];
Подойдет?

Цитата:
Serge_Bliznykov
Ты меня мегаопередил ))))))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2011, 15:24   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если ВДРУГ совет от Аватар'а не поможет...
Удивлюсь если не поможет AsFloat от NULL всегда 0 возвращал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.08.2011, 15:45   #6
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию

Спасибо большое. Совет от Аватар'а помог.
Serebah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пропустить значение в цикле Bape}l{ka Microsoft Office Excel 5 18.07.2011 17:34
ошибка при редактирование с полями со значением NULL: Access -> ADO VVkSoft БД в Delphi 7 01.04.2011 00:30
При значении NULL в Maskedit запись в БД не добавляеться! carlozzz Компоненты Delphi 1 21.03.2011 10:46
Как при неудчной загрузке файла, пропустить ошибку (HTTP/1.0 504 Gateway Time-out) и прочии Nockola Работа с сетью в Delphi 2 26.12.2010 19:12
TParameters. Значение NULL Stilet БД в Delphi 4 13.05.2010 16:45