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