|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
03.05.2009, 15:56 | #21 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
В добавление к посту №14. Планировал сделать такую связь с таблицами:
table_infa <-> table_marks по ID table_marks <-> table_critery по ID_Predmeta table_critery <-> table_infa по ID table_critery <-> table_predmety по ID_Predmeta table_period_1 <-> table_infa по ID table_period_1 <-> table_chetverty_1 по ID_Chetverty_1 table_period_2 <-> table_infa по ID table_period_2 <-> table_chetverty_2 по ID_Chetverty_2 Так вроде получаются, что все таблицы связаны. Или нет?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
03.05.2009, 20:11 | #22 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Сделал исходник и таблицы.
Всего таблиц 5 : PersonalInfo, Predmet, Criteria,Chetvert, CurrentYear Самое уникальное поле как я понял является criteria (там Ko, dvoek и так далее), через нее и будем делать связь с другими таблицами через индексы Id других таблиц. А потом в запросе примерно пишется что в исходнике в Query1.SQL; На мой взгляд при этом избыточность будет меньше. Сначала в базе вводятся фамилии. Потом выбираются поля текущими фамилии, года, четверти, предмета. и их Id заносятся в критерии. Пока что на первый взгляд у меня такое представление связи таблиц. ---------------------//////////////// Добавлю так же что запросы в данном случае легче писать через SQL Builder (правой кнопкой на Query), а потом уже редактировать получившийся запрос (там путь прописывать относительный, а не абсолютный и т.д.)
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
Последний раз редактировалось ArtInt; 04.05.2009 в 12:02. |
08.05.2009, 12:47 | #23 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Народ, объясните мне одну вещь. Когда я делаю связь по ID(оба поля имеют тип N, главная таблица - infa) через Master Source двух таблиц infa(ID,ФАМИЛИЯ,ИМЯ,ОТЧЕСТВО) и period(ID,Chetvert,ГОД), то у меня в списке, где я должен по идее выбрать в списке полей дочерней таблице поле ID для связи с главной таблицей, нет этого самого поля. Почему? Если сделать в дочерней таблице поле ID ключевым (*), то я не могу добавлять и редактировать данные, а если не делаю ключевым, то не отображается поле в списке. Почему на примере двух таблиц из папки Delphi customer и order, все работает, а у меня нет (. В чем может быть моя проблема??
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
08.05.2009, 14:37 | #24 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Ты уверен, что правильно организовываешь связь? Когда организуется связь мастер-подчиненный, то id (автоинкрементное (+))-> IdInfa(целочисленное(N).
Во второй таблице где idInfa для него делаешь Secondary Index (с любым названием) и уже потом в дельфи выбираешь Мастер Id (автоинкрементное) - IdInfaSecondaryIndex (типа N). Где то примерно так, и по моемому Id должно быть ключевым.(*)
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
08.05.2009, 14:48 | #25 | |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Цитата:
ключевым только в главной таблице?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
|
08.05.2009, 14:55 | #26 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Да, потому что значения счетчика из первой таблицы заносятся во вторую, именно по этому данные строчки и находятся.
Id - ключевое в первой таблице. А во второй просто есть другое ключевое автоинкрементное поле, можешь назвать его тоже Id, но оно не используется для связи, для связи используешь IdInfo для которого мы делали вторичный индекс.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
08.05.2009, 15:09 | #27 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Такие будут поля в таблицах и так будет связь осуществляться?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
08.05.2009, 16:32 | #28 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Да, такие, потом только в Дельфи в дочерней таблице выбираешь MasterSource, и там связываешь первичный индекс Id первой таблицы(главной) с вторичным индексом IdInfoSecondaryIndex. И все, они должны быть связаны между собой.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
08.05.2009, 17:20 | #29 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Сделал поля, сделал вроде связь таблиц, поле ID в главной таблице *. Но сейчас когда указываю связь IDInfa -> ID, то появляется типа ошибка: "Field index out of range". Что это значит? Далее, когда нажиммаю ОК, то это сообщение исчезает. Я запускаю программу, вношу данные в главную таблицу. Заносятся вроде без проблем. Но когда я нажимаю на кнопку, чтобы занести данные в дочернюю таблицу, то появляется ошибка: "Index is read only", а в коде внесения данных выделяет строку кода, которая показана на скриншоте. В дочернюю таблицу заносится только первая строчка. В чем дело? :'(
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
08.05.2009, 17:31 | #30 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Никакие присваивания полю Id делать нельзя так как оно автоинкрементное...Оно автоматически увеличивается на 1 при создании новой записи и предназначено только для чтения.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
Последний раз редактировалось ArtInt; 08.05.2009 в 17:34. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь таблиц в 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 |