Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли из открытого ADOQuery узнать мин/макс значение


mmms ©   (2006-03-22 13:42:00) 

в опред столбце, без обращения к БД и без полного скана строк по while? Т.е. не обращатся для этого дела к БД, где SQL запросом получать данные о минимальном/максимальном числе типа SELECT MAX(fvalue) FROM tableи т.п. а локально получить это число. И в цикле пройти тоже всю выборку, тоже не хочется, строк может быть много, в таком случае конечно лучше запросом узнать требуемое...
Интересует именно локально.. Например как работает в ADOQuery ф-я Sort, локально можно отсортировать, без обращения к серверу. Если нет, так нет, не велика проблема, просто хотел сократить обращения к серверу, а эти данные (мин/макс) нужны после каждого запроса, по всем столбикам (data/integer/decimal).
Заранее благодарю.


Anatoly Podgoretsky   (2006-03-22 15:48:00) [1]

mmms   (22.03.06 15:43) [13]
Можно, если набор отсортирован, то это первое и последнее значение


mmms   (2006-03-22 15:43:00) [2]

vovnuke ©   (22.03.06 14:49)
Спасибо!
На счет Sort, понятно, просто для примера привел, сортирует ведь локально, думал можно и что то так же "получить" из выборки, т.е. сейществует рабочий способ. Но раз не существует, конечно не сложно написать.


vovnuke   (2006-03-22 14:52:00) [3]

функция Sort, работает в зависимости от значения свойства CursorLocation, а вообще почитай примечание к хелпу по Sort


vovnuke   (2006-03-22 14:49:00) [4]

2 mmms
перед отключением датасетов, вызови метод TDataSet-а, DisableControls,
после подключения обратно EnableControls.


Sergey13   (2006-03-22 14:43:00) [5]

2 [9] mmms   (22.03.06 14:40)
Твоя принципиальная ошибка/недоработка в том, что данных в гриде много. Плохо это, и как правило в 90% случаев не оправдано.


mmms   (2006-03-22 14:40:00) [6]

Sergey13 ©   (22.03.06 14:26)
Хорошо, и на это время цикла Grid отключать от поставщика данных? В принципе тогда проблемы нет. А то, если записей достаточно много, то "зависание" на время цикла в связи с "бегущими" данными в гриде тоже не хочется делать..


Sergey13   (2006-03-22 14:26:00) [7]

2[7] mmms   (22.03.06 14:21)
>Например от табл. есть связанные данные
Что мешает их отключить на время пробега?


mmms   (2006-03-22 14:21:00) [8]

Например от табл. есть связанные данные, побегу я цикл, а за курсором ещё 10 табл. изменяются, в итоге опять на сервер все ложится. Или как вариант, сделать копирование ADOQuery, и в клоне почитать в цикле? Что бы т.е. на главный не ложить этот цикл?


Reindeer Moss Eater   (2006-03-22 14:01:00) [9]

А кто будет обрабатывать этот твой запрос?

<Цитата>

Видимо Высший Разум. Цикл-то программировать лень.
Текст предыдущего запроса тоже не царское дело менять.


Плохиш   (2006-03-22 14:00:00) [10]


> mmms   (22.03.06 13:53) [3]
> Т.е. "локально" выполнить запрос к возвр. данным, которые
> уже "сидят" у клиента на ПК, уже никак нельзя?

А кто будет обрабатывать этот твой запрос?


Reindeer Moss Eater   (2006-03-22 13:59:00) [11]

Т.е. "локально" выполнить запрос к возвр. данным, которые уже "сидят" у клиента на ПК, уже никак нельзя?

А перебор набора данных это по твоему не "запрос"?


mmms   (2006-03-22 13:53:00) [12]

Т.е. "локально" выполнить запрос к возвр. данным, которые уже "сидят" у клиента на ПК, уже никак нельзя? На счет Приделать их тоже способ, но слишком большая переделка, код надо менять везде, запросов много... На как вариант пригодится, спасибо :)


Sergey13   (2006-03-22 13:47:00) [13]

>а эти данные (мин/макс) нужны после каждого запроса, по всем столбикам (data/integer/decimal).
"Приделай" их к НД через UNION например.


Reindeer Moss Eater   (2006-03-22 13:46:00) [14]

Остается только угадать какое там максимальное значение.
Тоже метод.


Наверх

Титульная страница Поиск, карта сайта Написать письмо