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

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

Сортировка по Lookup-полю... [D6, Access]


Verq ©   (2002-06-09 23:31:00) 

Господа,
имеются две таблицы
Table1(idx:счётчик, Avtor: Integer)
Table2(idx:Счётчик,Name: String)
Имеем грид, объединяющий эти две таблицы, одна из колонок грида - LookUp.
Вопрос: как отсортировать по видимому значению LookUp поля, а не по скрытому, на самом деле использующеся (т.е. сортироовать нужно по значению Name, а не по
Avtor). С обычными полями всё понятно - просто динамически дописываем Order By в инструкцию SQL, а чё с этими делать, а то сортирует не имена, а цифры поля Автор :(
P.S.: добавление Order By к запросу происходит после тычка на column.title.


John Kayfolom   (2002-06-20 13:37:00) [1]

Можно попытаться сформировать таблицу
Table2(idx:Счётчик,Name: String)
с одинаковым направлением сортировки idx и Name
Конечно при добавлении новой записи придется переколбашивать всю таблицу Table2 и апдейтить Avtor из Table1


Verq   (2002-06-11 22:38:00) [2]

Ага, понял что ты говоришь, по цифрам которые в поле Avtor (связанные с KeyField) в запрос добавляем имя автора из дугой таблицы и по нему сортируем. Как до жирафа .) ... Спасибо большое!


fnatali   (2002-06-11 06:18:00) [3]

Какая разница, есть это поле в гриде или нет, я же тебе про запрос говорила. Отображать нужно только те поля, которые тебе необходимы.


Verq   (2002-06-10 22:22:00) [4]

fnatali: в моём случае это не пройдёт, так как самого поля Name в гриде не видно :(, а сортировка происходит динамически по щелчку на заголоке столбца в гриде, вот. Если бы всё было так просто (хотя, стоит подумать именно про упрощение, как я понял для меня это лишним не будет)!
Всем спасибо за ответы, буду разбираться.


SB.John   (2002-06-10 16:00:00) [5]

Потому что про INNER JOIN я ничего не знаю. Буду благодарен, если объяснят.


TSV   (2002-06-10 13:03:00) [6]

Реализуемо. Еще лучше в Access вид (запрос) создать, а из приложения простой SELECT выполнять. Можно указать в свойствах ADOQuery, какую таблицу ( Unique Table) обновлять (запрос у нас многотабличный). И все будет "пучком" ;-). Единственное, почему outer, а не INNER JOIN?

Удачи.


SB.John   (2002-06-10 12:05:00) [7]

В твоем случае, вроде никак. Это делается одним запросом

select Table1.idx,Table1.Avtor,Table2.Name from Table1, outerTable2
where Table1.Avtor = Table2.idx
order by Table2.Name

И уже к этому запросу подцепляй DBGrid. Правда, не уверен, что это реализуемо в Access.


fnatali   (2002-06-10 09:17:00) [8]

В запросе и сортируй по полю Name из Table2


Наверх

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