Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как через DBGrid вывести не только содержимое одно


Автор: wider 24.1.2009, 01:50
Добрый день.
Пишу на Delphi 7.0 приложение, которое через ADO работает с БД составленной в Access 2007. 
В Access я создал несколько таблиц и определил взаимосвязи между ними.
Тут показано каким образом:

user posted image

Теперь в Delphi я с помощью DBGrid вывожу содержимое одной таблицы.

user posted image

И тут он мне показывает содержимое этих полей (key), которые связаны с другой таблицей, вместо того, чтобы показать какое-то поле из связано таблицы (вместо key показать Название).

Вот вторая таблица:

user posted image

Как мне настроить грамотный и красивый вывод?
Чтобы в таблице "Материалы" в поле "Единицы измерения" у меня выводились не числа, а названия, которые прописаны во второй таблице?

Автор: Данкинг 24.1.2009, 02:45
Ну так формируй всё, что надо, запросом, а его уже выводи в грид.

Автор: wider 24.1.2009, 10:07
Цитата(Данкинг @ 24.1.2009,  02:45)
Ну так формируй всё, что надо, запросом, а его уже выводи в грид.

Окей, спасибо за емкий ответ, а подскажи тогда каким компонентом формировать запрос? ADOQuery? Может есть кусок кода, где это уже используется? Просто пример, я сам с синтаксисом разберусь. И как потом вывести ответ запроса в DBGrid?

Автор: Данкинг 24.1.2009, 13:26
Цитата(wider @  24.1.2009,  10:07 Найти цитируемый пост)
 ADOQuery?

Ну типа того.

Цитата(wider @  24.1.2009,  10:07 Найти цитируемый пост)
Может есть кусок кода, где это уже используется?

Юзай поиск по форуму! smile 

Автор: DiJax 26.1.2009, 18:32
Используй в запросе JOIN
Например на табл. Материалы и Тара

Код

Select M.*,T.Единица измерения
from Материалы M

left join Тара T
on T.код_тары=M.Единица измерения


Думаю понятно. Совет, используй в названиях таблиц и атрибутов англ. символы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)