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

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

Сумма элементов открытого запроса [D6]


PalPalych ©   (2005-05-23 00:32:00) 

Добрый вечер.
Такая ситуация: Имеется компонент Query.Запрос меняется при изменении значений одного из нескольких GroupBoxов. Данные, отсортированные в соответствии с выбранными значениями переключателей, отображаются в DBGrid. Необходимо, чтобы каждый раз, после изменения запроса, находилась сумма элементов некоторого поля, согласно выбранным параметрам.
Возможно ли этого добиться?
Заранее благодарю.


PalPalych   (2005-05-24 14:00:00) [1]

msguns ©  (24.05.05 09:45),
(если все в дезайне, то можно, конечно, положить еще один TQuery, который и настроить аналогично исходному, но сам запрос зделать агрегатным. Что, имхо, тоже непрофессионально) ;)
Именно так я и поступил!
Хоть и не професионально, зато работает!!!
Ещё раз спасибо за помощь!


msguns   (2005-05-24 09:45:00) [2]

Так и не понял про компоненты доступа. Если это BDE, то вложенный запрос SELECT FROM SELECT не прокатит ! В этом случае надо либо сканировать НД, предварительно его заблокировав, (что имхо, не по-джидайски), либо хитро создавать новый запрос, парсируя исходный (если все в дезайне, то можно, конечно, положить еще один TQuery, который и настроить аналогично исходному, но сам запрос зделать агрегатным. Что, имхо, тоже непрофессионально) ;)


PalPalych   (2005-05-23 22:55:00) [3]

Всё, разобрался. Всем принявшим участие большое спасибо.


Плохиш   (2005-05-23 19:43:00) [4]

>PalPalych   (23.05.05 19:38) [15]

TQuery + F1, Там изучаешь свойства до прояснения. (Database)


PalPalych   (2005-05-23 19:38:00) [5]

undeclared idenfier: "Connection".
Более того не узнаёт свойство Connection и у других элементов TQuery.


Плохиш   (2005-05-23 19:28:00) [6]

PalPalych   (23.05.05 19:07) [13]
Спасибо всем за участие.
msguns ©, спасибо за идею. Правда возникает ошибка в строке:
Connection := Query1.Connection;.


Прям так и говорит "Ошибка" и больше ничего?


PalPalych   (2005-05-23 19:07:00) [7]

Спасибо всем за участие.
msguns ©,спасибо за идею. Правда возникает ошибка в строке:
 Connection := Query1.Connection;.
без этой строки запускается, но работает некоректно. Не подскажешь, в чём может быть причина?


msguns   (2005-05-23 13:25:00) [8]

>Sergey13 ©   (23.05.05 11:37) [11]

Чему учишь пацанов ?
А потом удивляемся, откуда берутся любители шары ;P


Sergey13   (2005-05-23 11:37:00) [9]

2PalPalych   (23.05.05 00:32)
Поставь EHLib -овский грид и наслаждайся безо всяких телодвижений. 8-)
http://www.ehlib.com/RUS/default.htm


msguns   (2005-05-23 11:32:00) [10]

SQL.Text := 'SELECT SUM(<Поле 1>), SUM(<Поле 2>),... FROM ('+
      MyQuery.SQL.Text +')';


msguns   (2005-05-23 10:53:00) [11]

Для полученя сумм можно, к примеру, воспользоваться технологией вложения запросов, создав временный запрос по образу
 with TADOQuery.Create(nil) do
   begin
    Connection := MyQuery.Connection;
    SQL.Text := 'SELECT SUM(<Поле 1>), SUM(<Поле 2>),... FROM '+
       MyQuery.SQL.Text;
    Open;
    EditSum1.Text := Fields[0].AsString;        
    EditSum2.Text := Fields[1].AsString;        
    ...
    Close;
    Free;
   end;

Вставить этот код в процедуру, переоткрывающую основной НД (MyQuery)


Lexa   (2005-05-23 02:46:00) [12]

Извини, забыл добавить, но чуствуется ты быстро раскусил о каком идет речь ... помойму GO только в нем существует


Zacho   (2005-05-23 02:38:00) [13]

Lexa   (23.05.05 2:31) [6]

Бросай такие привычки :) Кстати, не забывай добавлять MS.

А то, знаешь ли SQL-серверов много есть.


Lexa   (2005-05-23 02:31:00) [14]

Это привычка от SQL Server


Zacho   (2005-05-23 02:25:00) [15]

Lexa   (23.05.05 2:23) [4]

А что такое GO ?

:-P


Lexa   (2005-05-23 02:23:00) [16]

SELECT столбец наименований, SUM(столбец количества)
FROM таблица(ы), которая содержит эти столбцы
GROUP BY столбец наименований
GO


Zacho   (2005-05-23 01:06:00) [17]

PalPalych   (23.05.05 0:52) [2]

Всё равно в вопросе не хватает необходимой информации для ответа. Приведи струкуру БД, и наконец-то напиши в чём именно проблема?
Какая СУБД ? Какие компоненты доступа ? Как построена программа ?

P.S. Мне сейчас скучно, так что если хочешь - высылай исходники мне на мыло. Но если я не отвечу - не обижайся.


PalPalych   (2005-05-23 00:52:00) [18]

Проще говоря, к примеру таблица видеофильмов, я выбираю жанр фильма, и при этом отображаются фильмы только этого жанра. И надо посчитать общую стоимость всех фильмов этого жанра. При выборе другого жанра, чтобы сразу менялась сумма....
Вычисляемое поле создал, но занести туда необходимое значение не удаётся.


Zacho   (2005-05-23 00:41:00) [19]

Возможно.
А в чём собственно проблема ?

Hint: опиши свою задачу подробнее. Конкретно в чём проблема ? И что такое "элементы некоторого поля" ? Вообще-то, поля должны быть атомарны :)


Наверх

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