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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2009, 21:44   #1
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию Отображение связанных полей в dbgrid

Я в delphi с базами ни когда не работал, знакомому понадобилось за 2 дня сделать программу и я единственный кто взялся ему помоч. Используя adotable, datasource, adoconnection и dbgrid отображаю базу mdb. Есть 2-е таблицы: категория товара и товар. В товаре есть поле категория в которое вставляется код категории(первая таблица). Нужно чтоб в dbgrid вместо кода выводилось значение поля name(таблицы 1), соответствующее коду. Какие связи делать в бд и куда в delphi жать?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 18.04.2009, 21:54   #2
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

можно в дельфи оспользовать не ADOTable, а ADOQuery, ему в текст запроса написать

Код:
SELECT T.ID, T.TovarName, (SELECT C.CategoryName FROM Categories C WHERE C.ID = T.CategoryID) AS TovarCategory
FROM Tovar T
и в гриде будет отображаться название категории
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 18.04.2009, 23:09   #3
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Я же говорю что ни когда не работал с бд, всё что знаю это 4 тех компонента. Можно по проще и теми 4-мя компонентами. И ещё поля у меня на русском с пробелами.
Я бы и сам разобрался, но это нужно время которого у меня нет.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 18.04.2009, 23:48   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Попробую описать весь алгоритм.
Предположим есть две таблицы KatTovar и Tovar.
Кидаешь AdoConnection1 подсоединяешь базу данных Access. В datasource1 прописываешь KatTovar и так далее это во всех учебниках описывается.

Делаешь в AdotableKatTovar вычисляемое поле (в Fields Editor, для двойной клик на TAdoTable) пишешь CalcTovar потом String потом Calculated. Закрываешь.
Потом находишь OnCalc
там прописываешь примерно так
AdoTableTovar.Active:=true;
if AdotableTovar.Locate('KodTovar',Ado tableKatTovar.fieldbyname('IdTovar' ).AsString,[loCaseInsensitive, loPartialKey])=true then
AdoTableKatTovar.Fieldbyname('CalcT ovar').AsString:=AdoTableTovar.Fiel dbyname('NameTovar').AsString;

Вот где то примерно так , грубо но работает...
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 19.04.2009, 00:38   #5
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Спасибо всем отвечающим. Я просто думал что у этих компонентов должны быть стандартно такие важные функции.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 19.04.2009, 00:42   #6
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Цитата:
Сообщение от Deight Посмотреть сообщение
Спасибо всем отвечающим. Я просто думал что у этих компонентов должны быть стандартно такие важные функции.
Вообще то стандартные функции это и есть использование например AdoQuery как описывала koma_grusha.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможна ли сортировка вычисляемых полей в DBGrid, если используется ADOTable ArtInt БД в Delphi 16 13.04.2009 03:13
Как выводить значения отдельных полей таблицы при выборе записи в DBGrid Sinker БД в Delphi 9 25.03.2009 12:28
Ширина полей DBGrid XATAB БД в Delphi 7 28.02.2009 10:54
Складывание полей DBGrid Crookers Общие вопросы Delphi 1 19.05.2008 15:31
отображение иконок в DBGrid Yoger БД в Delphi 3 04.03.2007 02:33