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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2011, 17:59   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как узнать самое большое число в столбце?

В DBGrid с помощью ADOTable открыта база Access. Необходимо узнать наибольшее число из всех записей в одном из столбцов. Есть у кого готовый алгоритмик?
Dux вне форума Ответить с цитированием
Старый 03.09.2011, 18:28   #2
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

ADOTable.Sort

или на худой конец через AdoQuery c SELECT MAX
Lesha вне форума Ответить с цитированием
Старый 03.09.2011, 18:48   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
ADOTable.Sort

или на худой конец через AdoQuery c SELECT MAX
Как может помочь ADOTable.Sort?

AdoQuery c SELECT MAX - тоже не подходит, т.к. в этом случае в DBGrid образится строка с максимальным значением, а мне необходимо выполнить это скрыто, чтобы содержимое DBGrid не изменялось.
Dux вне форума Ответить с цитированием
Старый 03.09.2011, 19:02   #4
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Все, разобрался.

Кому интересно:

Код:
procedure TForm1.Button10Click(Sender: TObject);
var max_num,i:integer;
begin
max_num:=0;
i:=AdoTable1.RecNo;
AdoTable1.DisableControls;
AdoTable1.First;
while not(AdoTable1.Eof) do
  begin
    if AdoTable1.FieldByName('File').AsInteger>max_num then
    max_num:= AdoTable1.FieldByName('File').AsInteger;

    AdoTable1.Next;
  end;
AdoTable1.RecNo:=i;
AdoTable1.EnableControls;
showmessage(FloatToStr(max_num));
end;
Dux вне форума Ответить с цитированием
Старый 03.09.2011, 20:20   #5
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
DBGrid образится строка с максимальным значением,
а с чего вы взяли что DBGrid ваще нужен? Берите значение поля напрямую через

Код:
ADOQuery.FieldByName('Field1').value
ADOQuery будет сам по себе, а AdoTable/Query из которых DbGrid отбражает данные само по себе.
Lesha вне форума Ответить с цитированием
Старый 03.09.2011, 21:14   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
AdoQuery c SELECT MAX - тоже не подходит, т.к. в этом случае в DBGrid
Это если ты будешь использовать тот же компонент который используешь и для вывода, но можно ведь в процедуре создать свой ADOQuery, и поматросив его, освободить

P.S. Кстати стоит в базе вьюшку сделать для этой задачи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2011, 21:18   #7
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо, разобрался!
Dux вне форума Ответить с цитированием
Старый 04.09.2011, 21:22   #8
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Не лучший пример для обучения, но работает на 100%
Поле MaxNum можно просто удалить из DBGrid

Код:
SELECT
 T.ID,
 T.TicketNum,
 T.ID_PersonalAccount,
 T.ChargeMonth,
 T.WorkMonth,
 T.PayDate,
 T.PackNum,
 T.AssertDate,
 T.ID_Employee,
 T.ID_PayPoint,
 T.FromMonth,
 T.ToMonth,
 (SELECT Max(TicketNum) FROM Ticket) as MaxNum
FROM
 Ticket T
ORDER BY
 T.TicketNum
Gulik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать большое число Dimbur Помощь студентам 2 08.05.2010 18:40
вывод числа из ax, не получается вывести большое число zmaxon Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 07.12.2009 00:09
[Делфи]Самое маленькое число. Как вычислить? zotox Помощь студентам 15 08.09.2009 15:47
Паскаль АВС - найти самое большое из четырёх чисел Dante123 Помощь студентам 4 14.04.2009 17:42
Сколь угодно большое целое число 1nd1g0k1d Общие вопросы C/C++ 3 29.02.2008 18:15