Вниз
Скачать: CL | DM;

Посчитать максимальное?   Найти похожие ветки 

← →
Колобок   (2005-07-06 12:20) [0]

Добрый день!

В программе есть грид, в гриде есть поле (столбец) "Число". Проставляем в это поле (столбец) числа, например: 2, 2, 1, 2, 1.
Подскажите пожалуйста как найти максимальное число из введеных чисел? В этом примере максимальным будет число 2.


← →
msguns ©   (2005-07-06 12:31) [1]

В гриде поле ? Это что, DBGrid ?


← →
Колобок   (2005-07-06 12:40) [2]

Да, это DBGrid.


← →
Думкин ©   (2005-07-06 12:44) [3]

> [2] Колобок   (06.07.05 12:40)

Тогда вопрос не к гриду, а к другому.


← →
msguns ©   (2005-07-06 12:45) [4]

В гриде отображается датасет. Способов получения агрегатов из курсора (датасета) всего два (основных):
простое сканирование и сиквел запрос. Второй метод отличается от первого точностью (при конкурентном доступе в многопользовательских приложениях) и скоростью (существенно выше в большинстве случаев). Однако для его создание требуется исходный запрос, который собсна и "поствляет" данные с "сервера" на "клиент".


← →
msguns ©   (2005-07-06 12:46) [5]

И вообще, имхо, тема должна переехать в "Базы"


← →
Колобок   (2005-07-06 12:47) [6]

Можно пожалуйста маленький примерчик, для лучшего закрепления материала?


← →
Alexander Panov ©   (2005-07-06 12:53) [7]

Колобок   (06.07.05 12:47) [6]

А проблема в чем?


← →
Колобок   (2005-07-06 12:58) [8]

Как сделать запрос для датасета, чтобы выбрать мах?


← →
msguns ©   (2005-07-06 13:02) [9]

Какие компоненты используются в качестве датасета ?


← →
TUser ©   (2005-07-06 13:04) [10]

Оффтопик. Есть алгоритм, который решает задачу нахождения любого (по порядку) элемента в неупорядоченном массиве за логарифмическое время.


← →
Колобок   (2005-07-06 13:05) [11]

FibDataSet.


← →
msguns ©   (2005-07-06 13:18) [12]

Если стоит эх!либ, то у него есть такая фича. Если обычный, то надо взять текст запроса (св-во SelectSQL) и заменить в строке SELECT перечень полей на MAX(<Имя-поля>). Модифицированный запрос впихать в тут же созданный TIBQuery, выполнить его (Open), считать полученное значение (Fields[0].AsXXX) в переменную, закрыть запрос и убить кверю.

Что-то типа
with TIBQuery.Create(nil) do
 begin
  DataBase := TFIBDataSet.DataBase;
  Transaction := TFIBDataSet.Transaction;
  SQL := TFIBDataSet.SelectSQL
  <Вырезаем из запороса все от первого пробела после слова SELECT до слова FROM>
  <Вставляем вместо него " MAX(FieldName)">
  Open;
  MaxVal := Fields[0].AsFloat;
  Close;
  Free;
 end;


← →
Johnmen ©   (2005-07-06 13:23) [13]

http://sql.ru/forum/actualthread.aspx?tid=197818
забавно...


← →
msguns ©   (2005-07-06 13:35) [14]

А у меня ошибка по этой ссылке ж(


← →
Johnmen ©   (2005-07-06 13:38) [15]

А у меня нет ж)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
14-1121937646
Дмитрий_Б
2005-07-21 13:20
2005.08.14
Не открываются архивы старых форумов


1-1122323177
dRake
2005-07-26 00:26
2005.08.14
Подскажите функцию :)


3-1120674484
Unavaible
2005-07-06 22:28
2005.08.14
Unavaible database


1-1121955070
alexander_ua
2005-07-21 18:11
2005.08.14
Массив из 5 и выше млн. элементов типа single-переполнение стека


3-1120746705
Pil
2005-07-07 18:31
2005.08.14
получение данных из БД




   Наверх