Форум — Ответы     (  К темам )
 ?  Игорь: Сортировка в DBGrid (15-12-2002 11:08:21)
Пытаюсь выбрать из базы на Интербейзе данные в алфавитном порядке, но не знаю как. Если использовать IBQuery то можно, но мне необходимо выводить в гриде в место вторичных ключей (id) их значения (name), а это на сколько мне известно можно только по средствам IBTable. В нем фильтровать можно, а порядок (например order by NAME) не к чему прикрутить. Помогите, посоветуйте как из IBTable выбрать данные в определнном порядке для DBGrid.
 Dvv (16-12-2002 12:14:22)
На знаю как там у них в Интербэйсе, не была. А вот у нас TADOQuery друг человека!

Компонент TADOQuery имеет встроенную сортировку по одному или нескольким поля.
Кроме этого в самом запросе можно использовать предложение ORDER BY.
В отличие от TQuery испольуя это предложнение можно редактировать записи.

Удачи . Dvv
 Павел (16-12-2002 16:39:03)
1. Очень часто бывает полезным хранить данные в таблице в памяти
Получаем данные в запросе (хоть из разных таблиц), помещаем в таблицу в памяти,
закрываем запрос (уменьшаем нагрузку на сервер базы данных)
После чего делаем что хотим с этими данными
Например, если использовать для таблицы в памяти компонент RxMemoryData из компонентов RxLib, то у него есть метод сортировки (например по полю Name)
tblMem->SortOnFields("Name",false,false); и Grid, связанный с tblMem
изменит сортировку как вам надо.

2. Насчет использования IBQuery — пожалуйста, свяжите таблицы в запросе по ключу и выводите, что вам нужно с order by NAME, либо, если не хотите использовать связывание таблиц в запросе, добавьте поле просмотра (как Lookup)
назовите его Name и свяжите по ключу ID c полем нужной вам таблицы или запроса