Помощь в написании базы данных на С++ Builder
P.S. Прошу не смеяться над моим вопросом, я только учусь написании БД в среде С++ Builder и с компонентами BDE знаком «туго». :D
Цитата: s2dent
Нужен совет в написании БД на С++ Builder (или Delphi). У меня на форме содержатся два компонента TDataSourcе, два TTablе (DiskTable и UserTable) и два TDBGrid. Первый TDBGrid связан с таблицей БД содержащей данные о существующих в магазине дисках, таблица DiskTable (ID код диска, название диска, цена и т.д.), второй TDBGrid связан с таблицей БД, содержащей данные о клиенте, таблица UserTable (ID код заказанного диска, Ф.И.О, логин, эл. почта и т.д.). ID код заказанного диска, естественно, совпадает с существующим в таблице DiskTable. А теперь перехожу собственно и к моей проблеме: мне нужно, чтобы при подсвечивании одной из строк в TDBGrid, содержащей данные о клиенте, в отдельном Edit’е (или где-нибудь ещё) выводилось название диска, которое содержится в таблице DiskTable. Т.е. мне нужно получить данные определенной строки таблицы.
P.S. Прошу не смеяться над моим вопросом, я только учусь написании БД в среде С++ Builder и с компонентами BDE знаком «туго». :D
P.S. Прошу не смеяться над моим вопросом, я только учусь написании БД в среде С++ Builder и с компонентами BDE знаком «туго». :D
А как ты организовал структуру БД. Или с этим тоже "туго". Я не хочу тебя обидеть. просто хочу понять, ты не знаешь как решить вопрос "технически" или не представляешь как организованы данные?
По поводу твоей проблемы. Связь таблиц по полю ID, при условии, что оно индексное, позволит тебе организовать пару "ведущий - ведомый".
При этом, позиционируясь на запись "клиента" ты сможешь увидеть все записи заказаных или купленных диков. Дополнительные фильтры по каким-то признакам помогут отображать, например, только не оплаченные диски.
Спасибо за беспокойство! Проблема решилась опытным путем, в свойствах DiskTable установил MasterSourcе равным DiskSource (TDataSourcе), тоже-самое сделал в св-ве MasterFields. Затем связал обе таблицы по полю, ID (может, что не так описал, но факт работоспособности остался :p ).