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

Вниз

Опять Вопрос по EhLib.... ПРО СОРТИРОВКУ ЛОКАЛЬНО!!!!   Найти похожие ветки 

 
BorisUK   (2002-11-21 12:04) [0]

Уважаемы мастера
Вопрос по EhLib....
Не кидайте комнями за то что и так много про это вопросов задают, а я опять спрашиваю...
Хотя нет, - не вопросов, а ответов дают много типа
"Смотри EhLib..." и ссылка
Ну так вот. Скачал, смотрю, разбираюсь...
Прежде всего интересует как там сортировка на кэшированном наборе данных делается.
Говорили что возможно.
Вот я именно и хочу спросить.... Уважаемые... поподробнее...
Ну как это делать то?
У DBGridEh есть свойство SortLocal : boolean.
Как класно, ставлю его в тру... ну а дальше что делать, не могу додуматься..
В примерах нет (или есть - я не нашел).
Один человек (в ранешных вопросах на эту тему) кинул фразу дескать у DBGridEh нет такого (или не работает) есть у CRDBGrid...
Смотрю... правда есть чтото типа CRDBGrid1.Columns[x].SortOrder
[soAsc, soDesc, soNon]
Но свойства SortLocal : boolean НЕТ.
Такчто не понятно на локальный набор оно действует или нет...
И ваще как.
Я попытался обратится CRDBGrid1.Columns[0].SortOrder:="soAsc" (предворительно колонки не создавал) при компиляции говорит ошибка нельзя к несозданному обращятся.
Создавать колонки на этапе проектирование и присваивать им поля данных для меня неприемлемо. Поэтому пока отподает этот вариант.

Просто скажите могул ли они это делать или нет...
И если да , то где копать?????


 
MsGuns   (2002-11-21 12:11) [1]

Могу сказать из личного опыта следующее:
Пользовался этой библиотекой до тех пор, пока не задрали многочисленные глюки. Вконец достала путаница с глобальными переменными (точнее, их пересечением и перекрытием). Все это касается, в основном именно пресловутого грида. Сортировку делаю или активизацией соотв. индекса (если Table), или сортировкой (ORDER BY для Query). Изменения во втором случае через TUpdateSQL или ручками по событиям AfterPost/Delete/Insert


 
BorisUK   (2002-11-21 12:17) [2]

Не учто все так сложно...
Ну а с примером можно ?
а то если по простому нельзя.. не понять где копать :)


 
Prooksius   (2002-11-21 12:22) [3]

Grid не может сам сортировать данные. Данные сортируются в DataSet. А Grid - только показывает.
Какими компонентами доступа к IB пользуешься?
В FIBPlus есть такая возможность:
Процедуры: Sort, FastSort. Объявлены и чуть-чуть описаны в FIBDataSet.pas
В остальных компонентах - не знаю.


 
BorisUK   (2002-11-21 12:57) [4]

Сейчас юзаю ODAC
но рашьше хотел и для интербейса сделать...
Значит ответ НЕТ?
Не могут эти EhLib веши делать такие ляли :)
Чтож это тогда за свойства такие многоговорящие?
Что например можно сделать поставив SortLocal : boolean.
в тру.???


 
Николай В.   (2002-12-02 10:11) [5]

Там демка есть. По ней посмотри, как в этой библиотеке сортировка сделана.


 
BorisUK   (2002-12-02 10:29) [6]

Уже посмотрел..
И ваще очень старый это вопрос. Уже раробрались - спасибо.
Для тех кому интересно делается это
так:

procedure TMain_f.DBGridTitleBtnClick(Sender: TObject; ACol: Integer;
Field: TField);
begin
ClientDdataSet.IndexFieldNames:=Field.FieldName
end;

И всего делов то :)
Только единственный минус только по возрастанию получается..
Может можно ли через Индекс фиелд наме делать и по уменьщению? может знает кто, но наврятли можно, хотя это ИМХО...


 
KSergey   (2002-12-02 11:03) [7]

Так и не понятно о чем вопрос.
Вам же уже много раз было отвечено: сортируется не грид, сортируется DataSet. А как он сортируется - зависит от этого самого DataSet"а.
Что вы и увидели в примере. Вопрос: что в ответах было не так?!! Почему вопрос возникал неоднократно?!! Или не в ответах и не в отвечавших дело, а...


 
roottim   (2002-12-02 11:25) [8]

Утверждения,что сортируется DataSet не всегда аксиома.
компания DevExpress умудряется отображать датасет c любой локальной сортировкой, не изменяя НД.. видимо используя свои нутренние индексы к НД клиета..


 
KSergey   (2002-12-02 11:32) [9]

to roottim
Не понял. Это НД их производства сортирует как угодно или это грид их производства сортирует ка надо? Приведите название компонента.


 
BorisUK   (2002-12-02 11:34) [10]

KSergey ©
Не нравится вопрос так не лезь с ответами от которых толку нет...
Тоесть либо по существу либо ничего...
А против какждого попроса диспут разводить типа "Достоен ли сей мил человек ответа и внимания тря ля ля"... Незачем.
Но это опять ИМХО :)


 
Prooksius   (2002-12-02 11:39) [11]

2 roottim (02.12.02 11:25)
Ну, "каждый по-разному с ума сходит", речь шла о стандартных распространенных компонентах, о правилах, а не о исключениях.


 
VAleksey   (2002-12-02 11:42) [12]


> KSergey © (02.12.02 11:32)

Именно грид.
Express QuantumGrid его название.
Сортирует как надо. И по возрастанию и по убыванию и мульти сортировка и т.д. и т.п.


 
roottim   (2002-12-02 11:44) [13]

все вопросы не ко мне
смотрите на http://www.devexpress.com там есть и описание и можно демки скачать.


 
KSergey   (2002-12-03 06:41) [14]

Да, наворотили этот QuantumGrid. Хотя не совсем он уже и грид, если уж разобраться (в борландовском понимании), что, впрочем, не умаляет его достоинств.


 
Andriano   (2002-12-03 10:09) [15]

Пытаться сделать сортировку в DBGridEh, всё равно что искать на мониторе кнопку для включения 16 битного цвета.
Так что причина в соственных руках.


 
valnech   (2002-12-03 12:17) [16]

DBGridEh умеет сортировать, он для этого к тексту запроса приписывает "ORDER BY "+индекс колонки. на которой щелкнули + тип сортировки (возрастание/убывание), работает не для всех типов результирующего набора, у колонок грида должен быть стиль Button включен (пишу по памяти, извините, если что не так :) )


 
BorisUK   (2002-12-03 12:27) [17]

to Andriano ©
Я просто повторил чьито слова что "такого рода сортировка делается
в DBEhGrid" и попросил расказать как...
Вот valnech © ваабще собрался кудато в грид сувать запрос
"ORDER BY "+индекс колонки
Я прошу прошения, но у меня уже все давно работает
и от (02.12.02 10:29) я написал как я это сделал :)
Да DBGridEh там не пригодился!
Но вы все обсуждаете и обсуждаете...
Мне савсем не надо чтоб мои вопросы переносили в конфы "Потрепаться". Поэтому прошу всех обратить внимание на то что проблема уже решена.
Всем спасибо :)


 
ЮЮ   (2002-12-03 12:43) [18]

>Только единственный минус только по возрастанию получается..
Может можно ли через Индекс фиелд наме делать и по уменьщению? может знает кто, но наврятли можно, хотя это ИМХО...

А с этим тоже разобрался?


 
BorisUK   (2002-12-03 12:46) [19]

Нет, но про это никто не говорит
а я сказал что ИМХО нельзя!
Пока не актуально.


 
Vick   (2002-12-03 12:53) [20]

Ты плохо смотрел, на самом деле можно, я делала...


 
ЮЮ   (2002-12-03 12:59) [21]

Создать индекс ClientDataSet.AddIndex(), указав в параметрах обратный порядок, и использовать ClientDataSet.IndexName



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

Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
3-61468
EternalMaverick
2002-12-02 10:59
2002.12.19
Добавление ролей в Interbase roles


1-61628
z27
2002-12-06 17:24
2002.12.19
Квадратный корень


1-61528
mila
2002-12-06 17:13
2002.12.19
вывод на консоль (абракадабра)


7-61856
Lars
2002-10-17 11:54
2002.12.19
Как записать на CD из моей программы!


1-61624
Hamlet
2002-12-06 15:41
2002.12.19
быстрый поиск в некотором массиве





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский