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

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

поиск по подчинённой таблице


Пауло Сержио ©   (2015-05-21 17:35:00) 

вопрос гуглил. Один access-файл .mdb, в нём две таблицы, один ADOConnection, два DataSource, два ADOTable и соотвественно два DBGrid.

ADOTable2 связан по MasterSource/MasterField с ADOTable1.

В первой таблице Table1 - список фирм, во второй Table2 - список сотрудников работающих в них. Всё отлично работает. Индексы везде есть, поля связаны.

НО, надо сделать глобальный поиск по подчинённой таблице Table2 (поиск по фамилиям).

Обычный locate или фильтр ищет только среди сотрудников в рамках выбранной пользователем фирмы на DBGrid, вместо глобального поиска.

Надо поле "глобальный поиск по фамилиям", пользователь ввёл фамилию - нашлась и фамилия в таблице Table2 и фирма в Table1.

Уважаемые Мастера, ткните носом хоть куда копать? Дальше я уже сам.

Заранее благодарю!


Пауло Сержио   (2015-05-22 13:50:00) [1]

>>Как-то так:

Спасибо! Я уже сам въехал... Немного криво, но работает: Один ADOQuery на форму, затем SQL запросом получил искомые пары записей в первой таблице и во второй (Фамилия - Фирма).
Дальше Locate по полученным ID по первой таблице, затем по второй, чтоб в двух DBGrid визуализировать результат.


pavel_guzhanov   (2015-05-22 12:36:00) [2]

Как-то так:

select table2.family, table1.firm_name
from table2
join table1 on table1.id = table2.id_firm
where table2.family = :param1


sniknik   (2015-05-21 21:29:00) [3]

> Индексы везде есть
в курсе, что ADOTable их не использует?

> ткните носом хоть куда копать? Дальше я уже сам.
SQL


Плохиш   (2015-05-21 18:20:00) [4]

надо третий TAdoDataSetи в нём с помощью запроса искать требуемое.


Наверх

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