![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Собственно, буду кратка - как создать связи между таблицами, например 1:1 или один ко многим. Я имею ввиду с помощью какого компонента? Поподробнее, пожалуйста, напишите! Тип таблиц - dBase IV, создать связи нужно для базы данных, не для приложения. Читала, что компонент MasterSource делает связи, но тогда как с ним работать, если так?
|
#2
|
|||
|
|||
![]() Вообще, создать физическую связь для таблиц dBase невозможно (на сколько я помню), т.к. данный функционал не поддерживается на уровне БД. Однако, в программе можно настроить компоненты доступа к данным (TTable и TQuery) так, чтобы получить желаемую связь.
Связь создается с помощью свойства MasterSource в подчиненном компоненте. Там при установке значения должен появиться диаложек, где указываются поля для связи. |
#3
|
||||
|
||||
![]() А можно поподробнее, пожалуйста, про настройку компонентов Table и Ouery? Знаю, что как-то можно создать связь через компонент Table по принципу главная-подчинённая таблицы, но как точно? Если знаете, и не трудно, по шагам можете написать? Благодарна за ответ!
|
#4
|
||||
|
||||
![]() Допустим вы подключаетесь к DBF через BDE.
1. Добавляете на форму компоненты Table1 и Table2 2. Добавляете на форму компонент DataSource1 Допустим Table1 у вас главная, а Table2 подчиненая, тогда: Код:
DataSource1.DataSet := Table1; Table2.MasterSource := DataSource1; Table2.MasterFields := 'ID'; // ID - это ключевое поле мастер-таблицы Table2.IndexFieldNames := 'MasterID'; // MasterID - это поле из детайл-таблицы по которому осуществялется связь с мастер-таблицей Вот собственно и все. Теперь при смене записи в мастер-таблице будет автоматом выбраны подходящие записи из детайл-таблицы Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
![]() А можно ли так связать таблицы находящиеся на разных формах? Дело в том, что у меня концептуальная модель с бинарными связями и нет таблиц с общими полями соответсвенно...Т.е. на форме с главной таблицей поставить Table1 и DataSource1, а на форме с подчинённой таблицей поставить Table2, который будет видеться как Table1, т.к он на другой форме..? И где писать код, в смысле надо просто писать его во вкладке Unit, если не ошибаюсь?
|
#6
|
||||
|
||||
![]() Можно, достаточно в секции Uses упомянуть имя модуля с таблицей, но обычно так не делают. В Дельфи есть специальный вид формы Data Module в котором и размещают все компоненты доступа к БД, а уже потом подключают его к нужным формам по той-же схеме, что я упомянул вначале.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |