Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 17:46   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Связь таблиц через Master Source

Как сделать связь таблиц по одинаковому полю? У меня две таблицы имеют одно и тоже поле ID. Таблица №1 с полями: ID, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО - это основная, а таблица №2 с полями: ID, ID_Predmet, ДВОЕК, ТРОЕК, ЧЕТВЕРОК, ПЯТЕРОК - это подчиненная. Как их правильно свзяать по этому ID? Делал на примере таблиц CUSTOMER и ORDERS из папки примеров Delphi, но у меня не получается. Последовательность действий примерно такая:
1. В той таблице, которую надо подключить к основной нужно через свойство MasterSource указать DataSource основной таблицы.
2. Открыть поле MasterFields и выбрать одинаковые названия из полей Detail Fields и Master Fields и установить связь.
В примере из Delphi там все ништяк устанавливается, а у меня не получается . Одинаковые названия полей у меня появляется только тогда, когда я в дочерней таблице на против поля ID ставлю *. Но после этого у меня не добавляются данные в дочернюю таблицу. Как правильно сделать? Кто нибудь знает?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 18:20   #2
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Если ты работаешь с таблицами Paradox, то в Database Desktop необходимо установить secondary index, для того того чтобы отображалось при связи таблиц.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 02.05.2009, 18:23   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Да, Paradox. А прописывать надо любое имя? Или конкретное название? И в какой из таблиц нужно прописывать их?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 18:24   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Да вроде любое.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 02.05.2009, 18:28   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А в какой из таблиц то: дочерней или основной?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 18:32   #6
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Насколько я помню нужно в дочерней таблице сделать.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 02.05.2009, 19:14   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Щас попробовал. Указал названия поля, по которому связываю таблицы. Соединению дал имя pole_ID для обоих таблиц. В инспекторе свойств указал в дочерней таблице DataSource основной. Сделал связь ID -> ID, но когда нажимаю на ОК, то появляется ошибка: "Table2: Field index out of range". Table2 - это дочерняя таблица. Что значит эта ошибка? После этого вручную устанавливаю свойства IndexFieldName и IndexName, но в дочерней таблице при выборе строки из основной не отображаются данные. Что я неправильно делаю?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 19:24   #8
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Скачай исходник созданный мной (в теме там самый последний). Рассмотри его. Там видна данная связь. Даю ссылку:
http://programmersforum.ru/showthread.php?t=46104
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 02.05.2009, 19:57   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я посмотрел Ваш исходник. Хорошо у Вас работает. А Вы можете помочь мне с моими таблицами? Можете для меня сделать исходник такой связи? Плиз. Скрины таблиц выложил я.
Изображения
Тип файла: jpg Безымянный.jpg (19.7 Кб, 174 просмотров)
Тип файла: jpg Безымянный1.jpg (16.0 Кб, 156 просмотров)
Тип файла: jpg Безымянный2.jpg (12.1 Кб, 144 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 20:47   #10
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Примерно так будет
Вложения
Тип файла: rar связи между таблицамиFam.rar (77.1 Кб, 97 просмотров)
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц в Database Desctop Sergius X БД в Delphi 0 22.04.2009 16:53
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL Sasha811 SQL, базы данных 0 01.01.2009 14:04
Связь таблиц в Delphi adinadin111 БД в Delphi 3 10.07.2008 14:50
связь таблиц в локальной БД IGREK БД в Delphi 3 30.06.2008 19:46
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29