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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 16:05   #1
malayka
Пользователь
 
Регистрация: 15.11.2009
Сообщений: 11
По умолчанию как указать на связи таблиц

select студент.курс, студент.фамилия, студент.имя, студент.отчество, группы.группа, специальности.абривиатура, отделения.отделение
from студент, отделения, группы, специальности
where студент.кодгруппы=группы.кодгруппы and
отделения.кодотделения=специальност и.кодотделения and
специальности.кодспециальности=груп пы.кодспециальности

с помощью этого запроса из ADOQuery отображаю поля в грид из разных аксессовских таблиц, и вроде бы строкой "where" указываю на связи между ними. НО заполнять потом из программы не получается, пишет что необходимо указать связные записи в таблице.

как еще их связывать не понимаю. подскажите решение плз.
malayka вне форума Ответить с цитированием
Старый 20.04.2010, 20:50   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Это скорее всего Вы попутали порядок заполнения таблиц или неправильно создали связи.
Виталий Желтяков вне форума Ответить с цитированием
Старый 21.04.2010, 06:06   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
select курс,фамилия,имя,отчество,группа,абревиатура,отделение
from студент,отделения,группы,специальности
where 
      (студент.кодгруппы=группы.кодгруппы) 
and (отделения.кодотделения=специальности.кодотделения) 
and (специальности.кодспециальности=груп пы.кодспециальности)
???
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось Stilet; 21.04.2010 в 08:47.
artemavd вне форума Ответить с цитированием
Старый 21.04.2010, 19:10   #4
malayka
Пользователь
 
Регистрация: 15.11.2009
Сообщений: 11
По умолчанию

да с этим разобрался вроде бы, и правда порядок заполнения путался. спс за внимание
malayka вне форума Ответить с цитированием
Старый 22.04.2010, 17:35   #5
malayka
Пользователь
 
Регистрация: 15.11.2009
Сообщений: 11
По умолчанию

попробовал с запросом:

Код:
SELECT студент.фамилия, студент.имя, студент.отчество, студент.курс, группы.группа, специальности.абривиатура,отделения.отделение 
FROM отделения INNER JOIN (специальности INNER JOIN (группы INNER JOIN студент ON группы.кодгруппы = студент.кодгруппы) ON специальности.кодспециальности = группы.кодгруппы) ON отделения.кодотделения = специальности.кодотделения
после отображаю его в гриде, к которому подкрепляю навигатор. После запуска и попытки заполнить, программа ругается "необходимо наличие связных записей в таблице группы". Заполнять я его не могу. НО по открытию базу аксессовскую вижу что таблица "отделения" заполняются. И почему если данные вносить напрямую через аксесс в гриде они не отображаются? Подскажите где я напортачил, и прошу извинить есл что-то покажется глупым)
malayka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как указать путь к БД в ручную? Tvik БД в Delphi 11 26.03.2010 14:46
Как указать диапазон условия Tidus Microsoft Office Excel 3 18.02.2010 19:45
Связи таблиц Dima_mazhor Microsoft Office Access 2 23.12.2008 15:37
Как указать в регулярке............ Adamant PHP 12 25.03.2008 10:11