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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 16:54   #1
Евгений_Магистр
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 64
По умолчанию Вывести сумму строк

Здравствуйте! Вопрос, как можно вывести сумму строк из запроса? Существует 8 DBEdit-ов, кликая на которые передается параметр в кверик, к которому подключен грид. Нажимая на один из DBEdit-ов я получаю количество строк с помощью команды:

reservQuerysumm.Value:=reservQuery. RecNo;

Но ведется некая статистика, в которой должно отображаться количество строк из всех DBEdit-ов. А количество я получаю только по одному, соответственно, когда кликаю. А необходимо, чтобы без клика был сразу подсчет, в соответствии с разными параметрами.
Евгений_Магистр вне форума Ответить с цитированием
Старый 16.04.2012, 18:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я получаю количество строк с помощью команды:
Это не кол-во строк, а номер текущей строки.
За кол-во строк отвечает метод RecordCount,
Цитата:
в которой должно отображаться количество строк из всех DBEdit-ов.
DBEdit это поле ввода, а не таблица. Он не имеет понятия о том сколько у кого строк.

Давай ты оберешься с мыслиной, и нормально опишешь проблему, ась?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2012, 19:16   #3
Евгений_Магистр
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 64
По умолчанию

Снимок.JPG

Вот скрин. Слева идут те самые DBEdit-ы, внизу по клику происходит выборка, а вот справа сверху необходимо выводить количество строк.
Евгений_Магистр вне форума Ответить с цитированием
Старый 16.04.2012, 19:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну тык метод RecordCount, компонента, к которому ты призявывал Эдиты и Гриды даст тебе кол-во записей в наборе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2012, 19:22   #5
Евгений_Магистр
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 64
По умолчанию

Так он даст информацию только по одному сотруднику, а мне необходимо, чтобы она отображалась по всем сразу, ну и в случае добавления новой записи, информация обновлялась.
Евгений_Магистр вне форума Ответить с цитированием
Старый 16.04.2012, 19:23   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вытащить запросом инфу сразу о всех нужных сотрудниках, подсчитать к-во и разместить в нужные поля. Или (что хуже) выполнить в цикле запрос для каждого из сотрудников в отдельности и RecordCount в нужное поле
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.04.2012, 19:32   #7
Евгений_Магистр
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 64
По умолчанию

Понял тебя, спасибо.

У меня по клику на DBEdit вот такой вот понос прописан:
Код:
procedure Traspr.sDBEdit1Click(Sender: TObject);
var a,b: integer;
begin

a:= smenaSource.DataSet.FieldByName('id').AsInteger;
b:= sDBEdit1.DataSource.DataSet.FieldByName('sotr_1id').AsInteger;

reservQuery.Close;
reservQuery.Parameters.ParamByName('smena_id').Value:=a;
reservQuery.Parameters.ParamByName('sotr_id').Value:=b;
reservQuery.Open;

zayavkaQuery.Close;
zayavkaQuery.Parameters.ParamByName('smena_id').Value:=a;
zayavkaQuery.Parameters.ParamByName('sotr_id').Value:=b;
zayavkaQuery.Open;

dogovorQuery.Close;
dogovorQuery.Parameters.ParamByName('smena_id').Value:=a;
dogovorQuery.Parameters.ParamByName('sotr_id').Value:=b;
dogovorQuery.Open;

konsultQuery.Close;
konsultQuery.Parameters.ParamByName('smena_id').Value:=a;
konsultQuery.Parameters.ParamByName('sotr_id').Value:=b;
konsultQuery.Open;

shlyapaQuery.Close;
shlyapaQuery.Parameters.ParamByName('smena_id').Value:=a;
shlyapaQuery.Parameters.ParamByName('sotr_id').Value:=b;
shlyapaQuery.Open;
Как ты считаешь, запрос можно дописать под этим кодом? Не будет ли это нагружать БД?

И ещё небольшой вопрос. Вот такой вот код:

reservQuery.Close;
.......
reservQuery.Open;

Это нормально? Или Close и Open можно заменить какой-либо одной строкой? Я просто о самом написании кода интересуюсь. Может можно написать лучше.

Последний раз редактировалось Stilet; 16.04.2012 в 19:38.
Евгений_Магистр вне форума Ответить с цитированием
Старый 16.04.2012, 19:36   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не будет ли это нагружать БД?
А что она настолько огромна что ты боищся тормозов?
Цитата:
Может можно написать лучше.
Если меняешь запрос или параметры то нормально.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2012, 19:40   #9
Евгений_Магистр
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 64
По умолчанию

Да нет, база не огромна. Будет расти, но максимум по 100 записей в день. Просто использую Access и потому немного обеспокоен её работой. как-то не впечетляет она меня. Ранее всегда работал с IB, даже как-то устраивал тест, закинув в одну и другую БД по 100 000 записей и совершил поиск. Access подвесил мне комп на минуту, а IB за долю секунды показал результат. Вот с тех пор и такое мнение у меня на счет MS Access.

Цитата:
Сообщение от Аватар Посмотреть сообщение
Вытащить запросом инфу сразу о всех нужных сотрудниках, подсчитать к-во и разместить в нужные поля. Или (что хуже) выполнить в цикле запрос для каждого из сотрудников в отдельности и RecordCount в нужное поле
У меня к тебе, в процессе реализации, небольшой вопрос возник. Если мне необходимо посчитать кол-во строк, то соответственно и 8 квериков должно быть, в каждом из которых я буду включать запрос или есть способ хитрее какой-нибудь?

Последний раз редактировалось Stilet; 16.04.2012 в 21:26.
Евгений_Магистр вне форума Ответить с цитированием
Старый 16.04.2012, 20:31   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Покажи сам запрос
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести количество целых чисел и их сумму из файла vaako Паскаль, Turbo Pascal, PascalABC.NET 0 10.04.2012 23:59
Задача - Вывести сумму от 1 до 20 laychan Паскаль, Turbo Pascal, PascalABC.NET 3 30.11.2011 17:37
std::transform вывести сумму двух векторов kouphais Общие вопросы C/C++ 2 16.10.2011 22:04
Найти сумму элементов и вывести согласные буквы Ilya87 Помощь студентам 3 28.03.2010 04:08
Вывести сумму чисел из строки Айдар Помощь студентам 17 20.06.2009 23:39