![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли из открытого 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]Остается только угадать какое там максимальное значение.
Тоже метод.