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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2012, 07:42   #1
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию Свойство DBGrid

Хочу сделать подсчет общего количества записей, но надо это сделать так чтобы это количество отображалось в Edit при каждом изменении в DBGrid(удалении или внесении новой записи).

Вопрос такой: на какое свойство в DBGrid или Form можно повесить обработчик события?
Ericnex вне форума Ответить с цитированием
Старый 11.09.2012, 07:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему единственный верный выход - сделать в гриде невидимое вычисляемое поле, в котором подводить сумму, которая пусть попадает в Эдит.
Можно конечно и в OnAfterInsert или типа того событиях делать циклом проход по данным, но думаю лучше будет сделать вычисляемое поле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.09.2012, 09:12   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

запрашивай RecordCount\RecordCountFromSrv на событиях AfterInsert\AfterDelete своего DataSet и пиши значене в свой Edit
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 11.09.2012, 09:19   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Или можно записать обычный селективный запрос и потом просто переотркывать его.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.09.2012, 09:24   #5
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Как будет выглядеть селективный запрос с занесением в Edit?
Ericnex вне форума Ответить с цитированием
Старый 11.09.2012, 09:33   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Например:
Код:
pFIBQuery1.Close;
pFIBQuery1.SQL.Text:='select count(*) as kolvo from MyTable';
pFIBQuery1.ExecQuery;
sEdit1.Text:=IntToStr(pFIBQuery1.FieldByName('kolvo').AsInteger);
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 11.09.2012, 09:38   #7
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Цитата:
запрашивай RecordCount\RecordCountFromSrv на событиях AfterInsert\AfterDelete своего DataSet и пиши значене в свой Edit
Это к какому компоненту относится?

Цитата:
pFIBQuery1.Close;
pFIBQuery1.SQL.Text:='select count(*) as kolvo from MyTable';
pFIBQuery1.ExecQuery;
sEdit1.Text:=IntToStr(pFIBQuery1.Fi eldByName('kolvo').AsInteger);
На какое событие в этом случае лучше прописать?
Ericnex вне форума Ответить с цитированием
Старый 11.09.2012, 10:11   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если каким то образом получено исходное значение к-ва записей в DataSet, то можно в событии DataSet.OnAfterInsert к счетчику плюсовать 1, а в событии DataSet.OnAfterDelete - минусовать 1. Исходное значение наиболее надежно получать запросом.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.09.2012, 10:21   #9
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Забыл сказать что у меня ввод и удаление динамические
Ericnex вне форума Ответить с цитированием
Старый 11.09.2012, 10:31   #10
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Это к какому компоненту относится?
к тому ч\з который будешь данные добавлять\удалять (TDataSet\TTable)

Цитата:
Сообщение от Ericnex Посмотреть сообщение
Забыл сказать что у меня ввод и удаление динамические
в каком смысле?

Аватар, а если БД сетевая? значение таких счетчиков будет неактуально
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свойство PopupMenu, компонент DBGrid Jene4ka Компоненты Delphi 5 19.12.2011 22:17
связь одной dbgrid c другой dbgrid anabenne БД в Delphi 3 17.10.2011 10:15
DbGrid свойство Option.dgEditing RS219 Общие вопросы Delphi 5 17.11.2010 10:55
Изменене свойство копонента DBGrid Uchqunbek БД в Delphi 2 19.03.2009 19:54
свойство сетки DBGrid XFilippowX Общие вопросы Delphi 6 15.02.2009 14:56