|
Вопрос # 2 993/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Подскажите, как осуществить фильтрацию связанных таблиц. Например, есть «основная» таблица с ФИО и «подчиненная» с телефонами, как отфильтровывать и по ФИО и телефонам. Буду благодарен как полным ответам, так и ссылкам на статьи.
Примечание #1 (16 июля 2009, 01:06): Что-то ни чего не получается.
Изобрести пытаюсь так:
ADOConnection1 далее ADOQuery1 и ADOQuery2, после соответственно DataSource1 и DataSource2.
Отображение через DBGrid1 и DBGrid1
Таблица ФИО имеет Key (счетчик), а таблица телефоны имеет и Key и LinkKey.
Все active, все работает, но по отдельности.
При использовании ранее ADOTable все работало корректно и таблицы были связаны через соответствующие MasterSource, и добавлялось и показывалось и т.д.
А вот с SQL что-то застрял.
Полей-то MasterSource нет. :(
Понимаю, что нужно написать какой-то запрос, но какой понять не могу.
 |
Вопрос задал: Вадим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 (статус: Посетитель), 16 июля 2009, 02:12 [#4]:
Еще не могу разобраться как работать в SQL с активной строкой
|
|
Мережников Андрей (статус: Абитуриент), 16 июля 2009, 05:53 [#5]:
что подразумеваете, говоря "активная строка"? и что именно хотите делать с ней в SQL?
|
|
Тов. Женька (статус: 3-ий класс), 16 июля 2009, 08:28 [#6]:
Можете воспользоваться событием AfterScroll у AdoQuery1. В обработчике этого события и пропишите нудный запрос.
Еще было бы не плохо там же таймер установить на прокрутку, на подобие как в FIBPlus.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|