Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Суммирование данных.Ошибка в коде? [D7, Paradox]


Wiedzmin ©   (2006-08-26 17:23:00) 

Здравствуйте, уважаемые!

Помогите с проблемой.Объясняю:

Есть таблица table1. В ней столбец quantity. После нажатия на кнопку button1 должна быть подсчитана сумма всех чисел столбца и выведена в Edit1.

Проблема: считает совершенно не так. берет последнюю запись и умножает на число строк.

Вопрос: почему? как исправить?

Вот отрывок из листинга:
x:=0;
table1.Last;
y:=table1.FieldByName('quantity').Value;
for n:=table1.RecordCount downto 1 do x:=x+y;

edit1.Text:= inttostr(x);


SergP.   (2006-08-28 15:56:00) [1]

> x:=0;
> table1.Last;
> y:=table1.FieldByName('quantity').Value;
> for n:=table1.RecordCount downto 1 do x:=x+y;
>
> edit1.Text:= inttostr(x);


М-да... в 5 строках 3 ошибки...
1). Цикл for - нехорош в данном случае. Нужно while not table1.bof do
2). Нет перехода к предыдущей записи. Table1.Prior
3). В теле цикла написана херня.


StriderMan   (2006-08-28 15:41:00) [2]

может как-нибудь запросиком проще? SUM?


Wiedzmin   (2006-08-28 15:37:00) [3]

спасибо. рад был услышать ваше мнение


Desdechado   (2006-08-27 15:49:00) [4]

with(table1) do begin
First;
x:=0;
while( not EOF ) do
 begin
   x:=x+FieldByName('aaa').AsFloat;
   Next;
 end;
end;

Но через SELECT Sum(aaa) будет быстрее и правильнее


Fay   (2006-08-26 19:25:00) [5]

"Вы берёте, и стреляете себе в ногу."
Это тот самый случай.


Virgo_Style   (2006-08-26 18:33:00) [6]

мы в восхищении (с)


Anatoly Podgoretsky   (2006-08-26 17:45:00) [7]

Все правильно это умножение последней строки на количество.


Наверх

Титульная страница Поиск, карта сайта Написать письмо