|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Связь многие-ко-многим
Доброго всем времени суток!
Мне интересно, кто-нибудь создавал связь многие-ко-многим в Delphi (БД Paradox)? Если, да, то как это сделать? Про создание дополнительной таблицы я знаю, проблема в том, что до этого я связывала таблицы в конструкторе связей, а там даже с дополнительной таблицей многие-ко-многим не получается. В общем, наверно, есть и другие варианты. Мне было бы интересно их узнать P.S. В программировании я новичок, так что давайте без комментариев типа "не умееешь - не берись", ок? Все ведь когда-то учились |
#2
|
|||
|
|||
Цитата:
табл1 = tabA табл2 = tabБ доп_табл=tabС для связи M:M таблиц A и B: tabA<->tabC (1:M), tabC<->tabB (M:1) осваивайте SQL, очень удобно, со временем прибавится простота. |
#3
|
|||
|
|||
Спасибо! Буду пробовать
|
#4
|
|||
|
|||
Давайте разберемся :
1) Тип сбязи в бд зависит только от наполнения связаных полей, тоесть связь многие-ко-многим образуется, если в двух таблицах (главной и детальной) в некотором поле (столбце) имеются одинаковые значения Пример: таб1-полеА <-----> таб2-полеБ 1 ----------------------- 3 2 ----------------------- 2 3 ----------------------- 1 1 ----------------------- 2 2 ----------------------- 1 в даном примере при срабатывании механизма связи с указателем на строке со значением "1" в "таб1"(главной) - в "таб2" (детальной) останутся 2 записи с таким же значением. То же самое будет если указать в главной таблице вторую запись с таким же значением. Получается МНОГО записей главной таблицы соответствуют МНОГИМ записям детальной или наоборот 2) в Делфи механизм связи между таблицами реализуется (для компонент Ttable) установкой свойства IndexFieldNames, MasterSource и MasterField у детальной таблицы в MasterSource указываем Datasource главной таблицы, в MasterField указиваем с каким полем в главной таблице будем создавать связь, в поле IndexFieldNames указиваем поле для связи(детальное), его вроде нужно проиндексировать. Вроде все. Успехов!! |