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

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

Связи [D5, Paradox]


kay ©   (2002-06-01 14:14:00) 

Народ Please Help, очень надо! У меня есть таблица Table1 и связанная с ней таблица Table2.
Так вот при осуществлении поиска в Table2, поиск происходит только относительно одной записи таблици Table1, активной в данный момент.
Как мне сделать поис по всей таблице Table2?
И в дальнейшем чтоб запис в Table1, которой будет соответствовать найденная запись в Table2, стала активной?


Anatoly Podgoretsky   (2002-06-02 09:49:00) [1]

Вот сейчас нормальный алгоритм, а отключение связей дает глюки и грубо по хакерски


kaif   (2002-06-02 00:30:00) [2]

В общем, я думаю:
1. нужно делать поиск в отдельном компоненте.
2. позиционировать Table1, куда надо, зная значение ключа из первого поиска.
3. окончательно позиционировать Table2, делая еще один поиск.
Или я просто не понимаю, о чем идет речь...


Anatoly Podgoretsky   (2002-06-01 16:19:00) [3]

kaif © (01.06.02 15:26)
Пимер неудачный, это поиск, делается по второй таблице, со связью на первую, или вообще без связи
А делать отключение связей в вышеприведенной схеме, и идеологически неверно и соответствующие проблемы


kay   (2002-06-01 15:39:00) [4]

>kaif © (01.06.02 15:26)
Поиск по Table2 проходит успешно. Но запись в Table1 не становится активной, при Table2.MasterSource := DataSource1, активной становится та, запись, которая была активной до этого, а мне именно нужно сделать активной запись, соответствующую поиску в Table1?


kaif   (2002-06-01 15:26:00) [5]

>2 Anatoly Podgoretsky © (01.06.02 15:18)
не всегда так.
Например, у человека список накладных с позициями и он хочет (очень редко, правда) найти накладную с какой-то совершенно определенной позицией. Тогда получится примерно то, что спрашивающий хочет.
Хотя я согласен, что лучше иметь отдельный интерфейс для такого поиска со связью "наоборот". А что, если таких накладных несколько?...


Anatoly Podgoretsky   (2002-06-01 15:18:00) [6]

Связь в неправильном направлении


kaif   (2002-06-01 15:08:00) [7]

Нужно отключать на время связь Master-Detail, например, присваивая Table2.MasterSource := nil.
Затем делать Table2.Locate.
Затем делать Table1.Locate и опять восстанавливать связь Master-Detail:
Table2.MasterSource := DataSource1.
Чтобы все это не мигало 10 раз можно попытаться все это обрамить методами
Table2.DisableControls
...
Table2.EnableControls
Одним словом, поэкспериментировать немного нужно.
------------------
Хотя можно вообще иначе:
Отдельно в некоем Table3 или в Query найти то, что нужно,
а затем сделать соответствующий Table1.Locate.
Я бы так поступил.


Наверх

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