Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 805

/ вопрос открыт /

Здравствуйте,уважаемые эксперты!
В Table есть 1 столбик,он заполнен числами, как правильнее посчитать сумму этих чисел,ну и вывести в обыкновенный едит..я думала может функцией суминт,но прога виснет на ней...
Заранее благодарю.

Анастасия Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Анастасия (статус: Посетитель)
Вопрос отправлен: 18 мая 2009, 14:30
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Анастасия!
а что это за функция такая "суминт"?
Вообще то для базы лучше сделать средствами sql - делаем запрос select sum(имя поля) from tablename
и закидываем его в Query. А дальше можно забрать в виде Query.Fields[0].Value.AsInteger
Либо привязать Datasource и DBEdit

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 18 мая 2009, 14:42
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 19 мая 2009, 17:29; участников в обсуждении: 5.
Анастасия

Анастасия (статус: Посетитель), 18 мая 2009, 14:46 [#1]:

ну я сначала тож думала запросом сделать=) а потом решила попробовать какойнить функцией,хотя вобще хз что это за SumInt)))))Спасибо большое,пойду делать запросом
Вадим К

Вадим К (статус: Академик), 18 мая 2009, 14:55 [#2]:

девочка и ругается.... ужас.
Галочка "подтверждения прочтения" - вселенское зло.
Ученый

Ученый (статус: 8-ой класс), 18 мая 2009, 14:58 [#3]:

а потом говорят, что парни грубияны:)
Анастасия

Анастасия (статус: Посетитель), 18 мая 2009, 15:00 [#4]:

не правдааа.я не ругаюсь=( это случайность
Вадим К

Вадим К (статус: Академик), 18 мая 2009, 15:10 [#5]:

К сожалению, в профиле не прописано откуда. Если с Украинны, то хз не будет ругательством - это сокращение от хто зна ("кто знает..."). А вот если с России - то ругательство:)
Галочка "подтверждения прочтения" - вселенское зло.
Анастасия

Анастасия (статус: Посетитель), 18 мая 2009, 15:13 [#6]:

XD сделаю вид,что с Украины ^^
Пупкин В В

Пупкин В В (статус: 2-ой класс), 18 мая 2009, 15:25 [#7]:

хз - давно принятое в нете сокращение (хто его знает)
а каждый понимает в меру своей распущенности.
извиняйте за офтоп.
Ozz

Ozz (статус: Посетитель), 19 мая 2009, 11:05 [#8]:

Ну вообще-то можно без всяких Query сделать, вдруг там обычная таблица... Ни на что не претендую, но всетаки вот:
procedure TForm1.Button1Click(Sender: TObject);
var
sum,i:integer;
begin
sum:=0;
table1.First;
for i:=1 to table1.RecordCount do
begin
sum:=sum+table1.Fields[1].AsInteger;
table1.Next
end;
edit1.Text:=intTostr(sum);
end;
При добавлении или удалении записей думаю додумаетесь пересчитывать.
Вадим К

Вадим К (статус: Академик), 19 мая 2009, 11:10 [#9]:

to Ozz.
А вот за предложение подобного кода надо быть по пальчикам.
Во первых, если человек выбрал какую то запись в гриде, это установит курсор на самую последнюю запись. По этому надо уже как минимум блокировать контролы и восстанавливать положение курсора (положения текущей записи).
Во вторых, такой код медленее. А если это например база по сети, то в таком коде происходит "пробежка по всем записям", которая проходит по сети и дает такие тормоза...
Галочка "подтверждения прочтения" - вселенское зло.
Ozz

Ozz (статус: Посетитель), 19 мая 2009, 14:52 [#10]:

Ну да, извините, не подумал...
Анастасия

Анастасия (статус: Посетитель), 19 мая 2009, 17:14 [#11]:

ксати, а вот тот столбик который мне над подсчитать он состоит из калькуляционных полей,которые в десктопе(где я создавала таблицы) не прописаны,т.к я их добавляла в делфи..такчто он ругается на запрос(((
Вадим К

Вадим К (статус: Академик), 19 мая 2009, 17:29 [#12]:

А select тоже умеет умножать.Не уверен точно, но запрос вида

select sum(pole1*pole2) from mytable
может и сработать. По крайней мере, можно попробовать.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:27
Выполнено за 0.02 сек.