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

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

Сортировка DBGridEh [D7, Paradox]


Zheksonz ©   (2015-05-28 09:05:00) 

Добрый день.
Отображаю содержимое DataSet_a при помощи компонента DBGridEh. Возникла необходимость сортировки по дате, которая содержится в одном из полей базы данных. Подскажите плз. как организовать сортировку.

Сделал так:

DBGridEh1.Columns[1].Title.TitleButton = true;

DBGridEh1.Columns[1].Title.SortIndex = 1;

DbGridEh1.OptionsEh.dghAutoSortMarking = true;

DbGridEh1.SortLocal:= True;

добавил Uses EhLibADO

при этом заголовок работает как кнопка, появляются стрелочки сортировки, но в таблице никаких изменений((( Почему?


Дмитрий   (2015-06-19 13:40:00) [1]

Для сортировки по нажатию на стрелочки вставляю столбцы в текст запроса.


Денис Комаров   (2015-05-28 22:37:00) [2]

Вот 99% тебе грид как есть не нужен...


Zheksonz   (2015-05-28 20:31:00) [3]

В общем ничего лучше не придумал пока, кроме как закрыть, а потом открыть Query в обработчике AfterPost таблицы, в которую вношу изменения...


Zheksonz   (2015-05-28 20:07:00) [4]

FlushBuffersделаю... не это не помогает((


кгшзх   (2015-05-28 20:05:00) [5]

какое-то обновление

это ты напоролся на легендарный глюк/фичу парадокса+бде который настолько древний, что мало кто из старожилов про него помнит.

сбрасывай кеш на диск.


Zheksonz   (2015-05-28 18:48:00) [6]

при этом после перезагрузки программы изменения начинают отображаться... т.е. какое-то обновление я упустил((


Zheksonz   (2015-05-28 18:35:00) [7]

В общем при помощи TQuery сделал сортировку и навигацию по таблицам, но вот отображения изменений нет(((

В смысле внёс изменения в значения полей таблицы, сохранил их, сделал DataModule2.Query1.Refresh;но DBGridEh их не отображает((
DBGridEh.Refreshтоже не помогло.

Ставил Autorefresh := true;эффект тот же(( Почему не отображаются изменения?


кгшзх   (2015-05-28 14:44:00) [8]

tdataset

Использовать надо то, что есть внутри наследников TSQLDatasetFeaturesEh

Все они регистрируются через RegisterDatasetFeaturesEh внутри модулей типа EhLibADO, EhLibBDE


Плохиш   (2015-05-28 14:20:00) [9]


> Zheksonz   (28.05.15 10:08) [5]
> сделал DbGridEh1.SortLocal:= false;
>
> теперь выскакивает ошибка
> > TTable is not SQL based dataset.
>

Ну не может он "order by" к ttable добавить.

> Т.е. всё-таки TQuery нужно использовать?

tdataset


кгшзх   (2015-05-28 10:10:00) [10]

А что это за
> local mode


DbGridEh1.SortLocal:= True;


Zheksonz   (2015-05-28 10:08:00) [11]

сделал DbGridEh1.SortLocal:= false;

теперь выскакивает ошибка
> TTable is not SQL based dataset.


Т.е. всё-таки TQuery нужно использовать?


Zheksonz   (2015-05-28 10:02:00) [12]


> кгшзх ©   (28.05.15 09:21) [1]


Кстати в этой процедуре и выскакивает ошибка!


Zheksonz   (2015-05-28 09:59:00) [13]

Или мне вместо TTable нужно использовать TQuery ?


Zheksonz   (2015-05-28 09:58:00) [14]

Включил

Uses
   EhLibBDE;


При сортировке стала появляться ошибка:
> TSQLDatasetFeaturesEh can not sort data in dataset "Tours" in local mode


А что это за
> local mode

такой?


кгшзх   (2015-05-28 09:21:00) [15]

procedure TSQLDatasetFeaturesEh.ApplySorting(Sender: TObject; DataSet: TDataSet; IsReopen: Boolean);
begin
 if Sender is TCustomDBGridEh then
   if TCustomDBGridEh(Sender). SortLocalthen

     raise Exception.Create(Format ('TSQLDatasetFeaturesEh can not sort data' +
       'in dataset "%s" in local mode', [DataSet.Name]))

   else
     ApplySortingForSQLBasedDataSet(TCustomDBGridEh(Sender), DataSet,
       SortUsingFieldName, IsReopen, SQLPropName);
end;


Наверх

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