Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Вниз

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 не так уж и просто&#133 ?


 
sniknik ©   (2008-03-11 13:45) [6]

> а можно отсортировать даные в самом дата сете
зависит от собственно датасета... а как иначе? тебя какой интересует?


 
Kolan ©   (2008-03-12 12:00) [7]

> а как иначе?

[3] ЦУП

зависит от собственно датасета&#133
Допустим два варианта:
Есть 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 не всегда мжет приделать этот ордер и снова получить дата сет, приходится дополнительно изгаляца, но другого пути я незнал&#133


 
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 ведь локальную выборку сортирует?

Имхо нет. Оно как раз добавляет запрос. Можт там есть разные способы&#133 Я добавлял какойто модуль в юзес и после этого клик на заголовке начинал работать. Имхо в этом случе добавлялся ордер к запросу&#133


 
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 например нет.

Странно какая разница как и откуда данные пришли&#133 Сортируй и все&#133


 
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&#133


 
Ega23 ©   (2008-03-12 16:48) [28]


> ehGrid сделает при работе с компонентами для SQLite,


Ничего не сделает. Впрочем, как и все остальные DBGrid"ы. И для всех остальных компонентов доступа.
В DBGrid нет никаких данных.


 
Kolan ©   (2008-03-12 16:52) [29]

> В DBGrid нет никаких данных.

И что? Это понятно&#133


 
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]

> Это где????

Авот то-то что там прилагается пас файл, если мне не изменяет склероз его добавил в юзес и клик на заголовке начинает работать сам. И все сам деалет.

Сейчас спрошу&#133


 
Kolan ©   (2008-03-12 17:54) [34]

>
> Сейчас спрошу…

Поищу то есть.

Не EhLibBDE случайно? У меня нет просто сейчас этих компонент.

ЗЫ
 Судя по названию именно по [30] все и сделано. Для БДЕ&#133


 
Ega23 ©   (2008-03-12 17:55) [35]


> Авот то-то что там прилагается пас файл, если мне не изменяет
> склероз его добавил в юзес и клик на заголовке начинает
> работать сам. И все сам деалет.


Это будет работать только в частном случае. Потому как НД у меня может возвращать хранимка.


 
MsGuns ©   (2008-03-12 21:12) [36]

Один из распространенных ламерских мифов о всевозможных ух-, ах- и эх-гридах - то, что они якобы все подряд сортируют


 
Kolan ©   (2008-03-12 22:33) [37]

Авот мне как ламеру :) странно поччему сортировки нет в самом TDataSet. Казалось бы данные есть строчки, колоночки. Тип колонок известе. Бери да сортируй&#133
Почему это не сделано?


 
Ega23 ©   (2008-03-13 07:59) [38]


> транно поччему сортировки нет в самом TDataSet. Казалось
> бы данные есть строчки, колоночки.


Вот только без обид: подумай немного, посмотри на реализацию TDataSet.
Не поймёшь - спрашивай.
Ты, в отличие от ламеров, должен разобраться.


 
Kolan ©   (2008-03-13 10:56) [39]

> посмотри на реализацию TDataSet

Ок, давно пора мне это сделать.



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

Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.006 c
15-1203484843
Ega23
2008-02-20 08:20
2008.04.06
посоветуйте средство разработки под Postgres.


3-1194961356
andreoman
2007-11-13 16:42
2008.04.06
обрабатывать код ошибки сервера FB


6-1184656852
Sniks
2007-07-17 11:20
2008.04.06
Формирование IP пакета....


15-1203934641
Kerk
2008-02-25 13:17
2008.04.06
Посоветуйте хороший сниффер


2-1205254732
NaRuTo
2008-03-11 19:58
2008.04.06
Проиграть видео без MediaPlayer и DirectX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский