Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 993

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Подскажите, как осуществить фильтрацию связанных таблиц. Например, есть «основная» таблица с ФИО и «подчиненная» с телефонами, как отфильтровывать и по ФИО и телефонам. Буду благодарен как полным ответам, так и ссылкам на статьи.

Примечание #1 (16 июля 2009, 01:06):
Что-то ни чего не получается.
Изобрести пытаюсь так:
ADOConnection1 далее ADOQuery1 и ADOQuery2, после соответственно DataSource1 и DataSource2.
Отображение через DBGrid1 и DBGrid1
Таблица ФИО имеет Key (счетчик), а таблица телефоны имеет и Key и LinkKey.
Все active, все работает, но по отдельности.
При использовании ранее ADOTable все работало корректно и таблицы были связаны через соответствующие MasterSource, и добавлялось и показывалось и т.д.
А вот с SQL что-то застрял.
Полей-то MasterSource нет. :(
Понимаю, что нужно написать какой-то запрос, но какой понять не могу.

Вадим1979 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Вадим1979 (статус: Посетитель)
Вопрос отправлен: 14 июля 2009, 00:51
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 16 июля 2009, 08:28; участников в обсуждении: 4.
Егор

Егор (статус: 10-ый класс), 14 июля 2009, 02:01 [#1]:

Можно использовать средства языка SQL для этого - и связь таблиц будет соблюдена и фильтр можно наложить какой угодно.
Вопрос не совсем понятен. Подробнее, пожалуйста, опишите ситуацию.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 14 июля 2009, 05:46 [#2]:

каким образом связаны таблицы? В чем, собственно, проблема?
Тов. Женька

Тов. Женька (статус: 3-ий класс), 15 июля 2009, 10:12 [#3]:

Если ваши таблицы действительно связанные, а не на словах, то фильтрация должна сама происходить. Дело лишь в способе связывания.
Я думаю, вы, скорее всего, понимаете, что из себя представляют связанные таблицы.
Таблица ФИО должна содержать идентификатор, а таблица Телефоны ссылку на этот идентификатор.
Варианты связи:
1. select * from Телефоны where Телефоны.FIO_ID = :param_fio. Где в :param_fio подставляете идентификатор из ФИО.
2. В качестве индекса у ТелефоныDataSet указываете Ссылка_на_Идентификатор (должно быть проиндексировано), далее указываете MasterSource и указываете в MasterFields Идентификатор из ФИО.
Вадим1979

Вадим1979 (статус: Посетитель), 16 июля 2009, 02:12 [#4]:

Еще не могу разобраться как работать в SQL с активной строкой
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 16 июля 2009, 05:53 [#5]:

что подразумеваете, говоря "активная строка"? и что именно хотите делать с ней в SQL?
Тов. Женька

Тов. Женька (статус: 3-ий класс), 16 июля 2009, 08:28 [#6]:

Можете воспользоваться событием AfterScroll у AdoQuery1. В обработчике этого события и пропишите нудный запрос.

Еще было бы не плохо там же таймер установить на прокрутку, на подобие как в FIBPlus.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.02 сек.