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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2013, 04:26   #1
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
Вопрос DBGrid, ADOQuery(обьединение двух таблиц)

Доброго времени суток!
Есть БД "Спортивные соревнования", а точнее -футбол.

Есть следующие таблицы:

Matches(регистрация проведённых матчей):
Снимок.JPG

Список комманд:
Снимок2.JPG

Задача: вывести в DBGrid записи с таблицы Matches, но с заменой кодов комманд с таблицы Commands на название комманд с последующей возможностью добавления/редактирования записей непосредственно в TDBGrid /или с помощью TDBNavigator.
Проблема: данные я то вывел(с помощью SQL-запроса в TADOQuery), но вот редактированию (так и добавлении) записи, увы, не поддаются.
Возможно как-то решить эту проблему с помощью этих(или других с этой категории) компонентов? Как наладить связь между полями 2-х таблиц?
Изображения
Тип файла: jpg Снимок3.JPG (22.1 Кб, 59 просмотров)
Delphi_ProGer вне форума Ответить с цитированием
Старый 21.12.2013, 14:58   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

ADOQuery умеет редактировать непосредственно в DBGrid только тогда, когда БД находится под управлением MS SQL Server.
Для всех других СУБД эта фича недоступна.
Для непосредственного редактирования нужно применять ADOTable с Lokup полями,
каждое из которых соединено через свои ADOTable.
Прик вне форума Ответить с цитированием
Старый 21.12.2013, 19:52   #3
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Можете поподробней расписать, как сделать это в моей ситуации?
Буду благодарен
Delphi_ProGer вне форума Ответить с цитированием
Старый 21.12.2013, 20:13   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Вкратце (по-другому читать надо источники):
- для отображения и редактирования размещаем ADOTable (соединяем его с таблицей в БД; DBGrid через DataSource соединяется с этим ADOTable, которую называем главной);
- размещаем еще ADOTable, которое "смотрит" в таблицу "Команды";
- в главном ADOTable вызываем список колонок (двойной щелчок на компоненте) и вставляем все поля в списке (в контекстном меню "Add all fields");
- добавляем новое поле (в контекстном меню "New field");
- в диалоге выбирается "Lookup"; там и выбираем таблицу, которая соединена с другой таблицей.
в общем, и т.д.
Здесь не учебный полигон и рассказывать все в подробностях нет никакого желания, потому как об этом можно найти если не 1000, то с сотню материалов по этой теме.
Прик вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос adoquery вывод из двух таблиц undead92 SQL, базы данных 1 19.01.2012 12:39
как в Dbgrid удалять строку состоящую из двух таблиц Fanar БД в Delphi 8 12.03.2011 12:21
добавление данных из двух таблиц в DBGrid AJlEKCA БД в Delphi 2 09.01.2011 14:31
Слияние двух AdoQuery в одном DBGrid Марк Охман БД в Delphi 3 17.12.2010 21:27