| 
| 
 | Вопрос # 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.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |