![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Посчитать максимальное? [D7]
Колобок © (2005-07-06 12:20:00)Добрый день!
В программе есть грид, в гриде есть поле (столбец) "Число". Проставляем в это поле (столбец) числа, например: 2, 2, 1, 2, 1.
Подскажите пожалуйста как найти максимальное число из введеных чисел? В этом примере максимальным будет число 2.
Johnmen (2005-07-06 13:38:00) [1]А у меня нет ж)
msguns (2005-07-06 13:35:00) [2]А у меня ошибка по этой ссылке ж(
Johnmen (2005-07-06 13:23:00) [3]http://sql.ru/forum/actualthread.aspx?tid=197818
забавно...
msguns (2005-07-06 13:18:00) [4]Если стоит эх!либ, то у него есть такая фича. Если обычный, то надо взять текст запроса (св-во 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;
Колобок (2005-07-06 13:05:00) [5]FibDataSet.
TUser (2005-07-06 13:04:00) [6]Оффтопик. Есть алгоритм, который решает задачу нахождения любого (по порядку) элемента в неупорядоченном массиве за логарифмическое время.
msguns (2005-07-06 13:02:00) [7]Какие компоненты используются в качестве датасета ?
Колобок (2005-07-06 12:58:00) [8]Как сделать запрос для датасета, чтобы выбрать мах?
Alexander Panov (2005-07-06 12:53:00) [9]Колобок (06.07.05 12:47) [6]
А проблема в чем?
Колобок (2005-07-06 12:47:00) [10]Можно пожалуйста маленький примерчик, для лучшего закрепления материала?
msguns (2005-07-06 12:46:00) [11]И вообще, имхо, тема должна переехать в "Базы"
msguns (2005-07-06 12:45:00) [12]В гриде отображается датасет. Способов получения агрегатов из курсора (датасета) всего два (основных):
простое сканирование и сиквел запрос. Второй метод отличается от первого точностью (при конкурентном доступе в многопользовательских приложениях) и скоростью (существенно выше в большинстве случаев). Однако для его создание требуется исходный запрос, который собсна и "поствляет" данные с "сервера" на "клиент".
Думкин (2005-07-06 12:44:00) [13]> [2] Колобок (06.07.05 12:40)
Тогда вопрос не к гриду, а к другому.
Колобок (2005-07-06 12:40:00) [14]Да, это DBGrid.
msguns (2005-07-06 12:31:00) [15]В гриде поле? Это что, DBGrid ?