Текущий архив: 2008.04.06;
Скачать: CL | DM;
Вниз
DBGrid Найти похожие ветки
← →
031178 (2008-03-11 11:54) [0]Подскажите плиз...., как программно можно отсортировать данные в гриде, чтобы допустим последняя дата всегда была вверху,т.е. на первой строчке
← →
Sergey13 © (2008-03-11 11:55) [1]> [0] 031178 (11.03.08 11:54)
> как программно можно отсортировать данные в гриде
Нет в гриде данных. Сортируй набор данных.
← →
031178 (2008-03-11 11:59) [2]Ну а подскажи, как отсортировать набор данных по дате, если в одном столбике у меня вводится дата
← →
ЦУП © (2008-03-11 12:00) [3]
> 031178 (11.03.08 11:59) [2]
> Ну а подскажи, как отсортировать набор данных по дате, если
> в одном столбике у меня вводится дата
SELECT * FROM table ORDER BY date_field DESC
← →
031178 (2008-03-11 12:08) [4]Спасибо, работает
← →
Kolan © (2008-03-11 13:19) [5]Интересно, а можно отсортировать даные в самом дата сете, бо иногда добавить ORDER BY не так уж и просто… ?
← →
sniknik © (2008-03-11 13:45) [6]> а можно отсортировать даные в самом дата сете
зависит от собственно датасета... а как иначе? тебя какой интересует?
← →
Kolan © (2008-03-12 12:00) [7]> а как иначе?
[3] ЦУП
зависит от собственно датасета…
Допустим два варианта:
Есть TDataSet и нельзя узнать какой именно это потомок.
Или есть TADODataSet.
← →
Сергей М. © (2008-03-12 12:11) [8]
> нельзя узнать какой именно это потомок
Эт почему же ?
Разве методы Classname/ClassType уже отменили ?
← →
Ega23 © (2008-03-12 12:14) [9]
> Интересно, а можно отсортировать даные в самом дата сете,
> бо иногда добавить ORDER BY не так уж и просто… ?
>
TCustomADODataSet.Sort + F1
Например.
← →
ANB (2008-03-12 12:25) [10]
> Kolan © (11.03.08 13:19) [5]
По идее особых проблем с добавлением ордер бая быть не должно.
Впрочем, девэкспресс, хоть и грид, умеет сортировать на локале.
← →
Kolan © (2008-03-12 12:36) [11]> Эт почему же ?
Хорошо вот есть модуль А и модуль Б в модуле А класс которому дают TDataSet. Модуль Б создает класс из А и дает ему, допустим, TADODataSet.
Связывать А и Б плохо, бо А хочется в 10 приложениях использовать. Как тогда? Ну вызову я ClassName и что дальше делать с результатом?
> TCustomADODataSet.Sort + F1
Пошел читац.
> По идее особых проблем с добавлением ордер бая быть не должно.
Есть, при сложных запросах. Например EhGrid как я понял именно ордер и добавляет, и иногда бывают грабли (в зав. от запроса).
← →
Ega23 © (2008-03-12 12:37) [12]
> По идее особых проблем с добавлением ордер бая быть не должно.
Тут другое. Допустим, ожидаемая выборка - 10.000 записей по 15 полей, получение которых занимает, например, секунд 5.
Допустим, имеет смысл сортировка по четырём полям.
Каждый раз гонять запрос с OrderBy - накладно. Лучше получить с default-сортировкой, а потом на локале сортировать так, как надо.
Но это, безусловно, сильно зависит от задачи и получаемого НД.
← →
Ega23 © (2008-03-12 12:39) [13]
> Например EhGrid как я понял именно ордер и добавляет, и
> иногда бывают грабли (в зав. от запроса).
>
Пользую аккурат ehGrid. Граблей не заметил. Просто не забывай ASC и DESC указывать (ЕМНИП, в UpperCase)
← →
Kolan © (2008-03-12 12:39) [14]Кроме того, тот кто сортирует а это обычно что-то близкое к View не всегда мжет приделать этот ордер и снова получить дата сет, приходится дополнительно изгаляца, но другого пути я незнал…
← →
sniknik © (2008-03-12 12:40) [15]> Каждый раз гонять запрос с OrderBy - накладно.
и не только, можеш в другой раз получить другое количество записей...
← →
Ega23 © (2008-03-12 12:45) [16]
> и не только, можеш в другой раз получить другое количество
> записей...
>
Ну, я имел ввиду статичный запрос, т.е. данные в базе не меняются.
← →
sniknik © (2008-03-12 13:06) [17]> Ну, я имел ввиду статичный запрос, т.е. данные в базе не меняются.
а как ehGrid это отслеживает?
> Граблей не заметил.
а вот они.
← →
Ega23 © (2008-03-12 13:44) [18]
> > Граблей не заметил.
> а вот они.
Не понял? Eh ведь локальную выборку сортирует?
← →
Kolan © (2008-03-12 13:55) [19]> Пользую аккурат ehGrid. Граблей не заметил. Просто не забывай
> ASC и DESC указывать (ЕМНИП, в UpperCase)
А если там уже есть ORDER?
Я точно не помню, но помню нарывался.
← →
sniknik © (2008-03-12 13:57) [20]> Не понял? Eh ведь локальную выборку сортирует?
не пользуюсь, т.что не знаю как он там делает на самом деле
только по вашим репликам
>> Например EhGrid как я понял именно ордер и добавляет, и иногда бывают грабли (в зав. от запроса).
> Пользую аккурат ehGrid. Граблей не заметил.
если он правда так делает, то получить после сортировки не все сортируемые записи, или лишние, разве не "грабля"?
← →
Kolan © (2008-03-12 13:57) [21]> Eh ведь локальную выборку сортирует?
Имхо нет. Оно как раз добавляет запрос. Можт там есть разные способы… Я добавлял какойто модуль в юзес и после этого клик на заголовке начинал работать. Имхо в этом случе добавлялся ордер к запросу…
← →
Kolan © (2008-03-12 13:58) [22]А вот, с вычислимыми полями там грабли. Их ессно нет в БД, а он лепит ордер по ним в результате все не работает.
← →
Ega23 © (2008-03-12 14:02) [23]Блин, вы меня совсем запутали.
Не в DBGridEh ORDER, естественно. А в ADODataSet.
В гриде при клике на столбец выставляется нужный ADODataSet.Sort
← →
Kolan © (2008-03-12 14:02) [24]> TCustomADODataSet.Sort
Жаль что этого нет в самом дата сете.
В TASQLite3Query например нет.
Странно какая разница как и откуда данные пришли… Сортируй и все…
← →
Kolan © (2008-03-12 14:03) [25]> В гриде при клике на столбец выставляется нужный
А как грид узнает что это TADODataSet и что будет если я подсуну туда компонент у которого нет Sort
← →
Ega23 © (2008-03-12 14:45) [26]Тебе что, универсальный механизм нужен? Так его нету, забудь.
← →
Kolan © (2008-03-12 15:30) [27]> Тебе что, универсальный механизм нужен?
Я просто узнаю что есть. Просто с твоих слов непонятно что ehGrid сделает при работе с компонентами для SQLite, там нет Sort…
← →
Ega23 © (2008-03-12 16:48) [28]
> ehGrid сделает при работе с компонентами для SQLite,
Ничего не сделает. Впрочем, как и все остальные DBGrid"ы. И для всех остальных компонентов доступа.
В DBGrid нет никаких данных.
← →
Kolan © (2008-03-12 16:52) [29]> В DBGrid нет никаких данных.
И что? Это понятно…
← →
Ega23 © (2008-03-12 17:03) [30]
> И что? Это понятно…
А раз понятно, тогда в чём вопрос?
DBGrid не работает с данными, он только средство их отображения.
Можно, конечно, написать свой потомок, который, привязавшись к определённому НД будет им "рулить". Например, автоматом переоткрывать запрос с указанием нужного Order By.
Но это, ИМХО, гемор.
Точнее, это не стоит потраченного времени, быстрее обработчик написать OnTitleClick и отсортировать НД самостоятельно
← →
Kolan © (2008-03-12 17:05) [31]> В гриде при клике на столбец выставляется нужный ADODataSet.Sort
А, ты тут хотел сказать, что в учную ты этот сорт указывал?
А я имел ввиду что есть там и готовое решение.
← →
Ega23 © (2008-03-12 17:44) [32]
> А, ты тут хотел сказать, что в учную ты этот сорт указывал?
Естественно.
> А я имел ввиду что есть там и готовое решение.
Это где????
← →
Kolan © (2008-03-12 17:49) [33]> Это где????
Авот то-то что там прилагается пас файл, если мне не изменяет склероз его добавил в юзес и клик на заголовке начинает работать сам. И все сам деалет.
Сейчас спрошу…
← →
Kolan © (2008-03-12 17:54) [34]>
> Сейчас спрошу…
Поищу то есть.
Не EhLibBDE случайно? У меня нет просто сейчас этих компонент.
ЗЫ
Судя по названию именно по [30] все и сделано. Для БДЕ…
← →
Ega23 © (2008-03-12 17:55) [35]
> Авот то-то что там прилагается пас файл, если мне не изменяет
> склероз его добавил в юзес и клик на заголовке начинает
> работать сам. И все сам деалет.
Это будет работать только в частном случае. Потому как НД у меня может возвращать хранимка.
← →
MsGuns © (2008-03-12 21:12) [36]Один из распространенных ламерских мифов о всевозможных ух-, ах- и эх-гридах - то, что они якобы все подряд сортируют
← →
Kolan © (2008-03-12 22:33) [37]Авот мне как ламеру :) странно поччему сортировки нет в самом TDataSet. Казалось бы данные есть строчки, колоночки. Тип колонок известе. Бери да сортируй…
Почему это не сделано?
← →
Ega23 © (2008-03-13 07:59) [38]
> транно поччему сортировки нет в самом TDataSet. Казалось
> бы данные есть строчки, колоночки.
Вот только без обид: подумай немного, посмотри на реализацию TDataSet.
Не поймёшь - спрашивай.
Ты, в отличие от ламеров, должен разобраться.
← →
Kolan © (2008-03-13 10:56) [39]> посмотри на реализацию TDataSet
Ок, давно пора мне это сделать.
Страницы: 1 вся ветка
Текущий архив: 2008.04.06;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.01 c