Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Как связать 2 таблицы...   Найти похожие ветки 

 
Zif ©   (2004-09-26 20:56) [0]

Начну цитатой из книги "Библия Delphi" Михаила Фленова:

Теперь добавь сюда компоненты DataSource (назови его TelephonSource) и ADOTable (назови его TelephonTable) для доступа к таблице «Телефоны». Наведи свойство DataSource компонента TelephonSource на TelephonTable.
Теперь установи следующие свойства компонента TelephonTable:
Connection – укажи здесь наш компонент присоединения к базе данных ADOConnection1.
TableName – здесь укажи имя таблицы Телефоны.
Active – установи в true, чтобы открыть таблицу.
MasterSource – выбери здесь из выпадающего списка BookSource. Этим ты указываешь главную таблицу для таблицы Телефонов.
MasterFields – здесь мы должны указать связующие поля. Щёлкни по этому полю дважды и перед тобой откроется окно, как на рисунке 14.10.3. В списке Detail Fields (поля подчинённой базы) выбери поле LinkKey, а в списке Master Fields (поля главной базы) выбери поле Key1. Нажми кнопку Add и в списке Joined Fields (связанные поля) появиться строка отображающая выделенную связь. Закрой окно, кнопкой ОК чтобы сохранить указанную связь.
http://www.podgoretsky.com/ftp/Docs/Delphi/Fleonov/Bibble/Ch%2014-3.pdf (353 КБ)


Как такую же связь создать, если я использую ADOQuery и Access?
Какой код надо ниписать и где? Или иначе: чем заменить MasterFields в ADOQuery?


 
sniknik ©   (2004-09-26 21:31) [1]

> чем заменить MasterFields в ADOQuery?
MasterFields-ом в тейбле или в датасете.


 
Zif ©   (2004-09-26 21:41) [2]

тобишь можно использовать одновременно ADOTable и ADOQuery?


 
sniknik ©   (2004-09-26 22:05) [3]

с чего такие выводы? может и можно но не нужно, замени их оба на ADODataSet.


 
Zif ©   (2004-09-26 22:13) [4]

не очень знаком с этим компонентом... Он обладает теми же возможностями, что и ADOQuery? я просто ADOQuery выбрал из-за того, что нужно много поисковых запросов проводить...


 
sniknik ©   (2004-09-27 00:07) [5]

ADOQuery это ограниченный ADODataSet также как и ADOTable ограниченный он же (ADODataSet), ограничения до привычных свойств привычных по BDE компанент (для облегчения перехода), отличия правда есть.
по моему это была ошибка борланда, создание этих подобий, основные глюки и недопонимание именно от того, что ожидают подобного же поведения (невозможно принцып другой, основа). а привыкая не переходят на лучшее, привыкая костенеют в уже привычных рамках.


 
ЮЮ ©   (2004-09-27 04:06) [6]

>чем заменить MasterFields в ADOQuery

длЯ MasterSource всё остаётся по-прежнему: любое поле может быть выбрано в качестве Master, а вот Detail запрос должен быть параметрическим запросом, причем имя параметра должно совпадать с именем поля Master DataSet-а - в этом случае никаких лишних телодвижений с определениями пар MasterFields - Joined Fields не надо (по крайней мере так было с TQuery, надеюсь также и у ADOQuery)


 
Lamer8   (2004-09-27 23:38) [7]

А если в главной таблице ключевое поле счётчик, то при добавлении записи, в подчинённой таблице требуется ввести в связанное поле такое-же значение как и в ключевом поле главной, но в режиме редактирования этот ключ сервер не посылает ни в ADOQuery ни в ADODataSet, постить таблицы по очереди не самый лучший вариант, так как пользователь изменяет и добавляет данные в SQL запросе, как можно сделать чтоб при сохранении добавленных записей в связанном поле подчинённой таблицы подчинённой таблицы добавлялось значение сгенерированное счётчиком.


 
msguns   (2004-09-28 09:28) [8]

При добавлении в Мастер новой записи (с новым UID) никаких добавлений в подчиненные таблицы автоматически не делаются. А вот когда подчиненная таблица активируется (как пример: добавлен заголовок новой накладной, а затем переход к пустой фактуре, куда уже происходит добавление строк). Но ведь новый ключ Мастера (он же связующий) уже известен (во всяком случае его значение можно в любой момент получить) и его-то надо вставить в соотв.запрос.


 
Zif ©   (2004-10-02 15:57) [9]

большое спасибо, очень помогло.
А можно как-нить попроще объяснить, что делать с проблемой заполнения поля LinkKey в подчинённой таблице?
я новичок...



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
4-1096116790
Nils
2004-09-25 16:53
2004.10.31
Нужен пример работы с TMemIni?


1-1098204181
Mirror
2004-10-19 20:43
2004.10.31
Событие OnClose


1-1097848117
Фёдор Мегатронов
2004-10-15 17:48
2004.10.31
Какая функция жрёт больше ресурсов ?


1-1097833041
diabolik_krsk
2004-10-15 13:37
2004.10.31
Размер последней колонки DBGrid


9-1088370695
NailMan
2004-06-28 01:11
2004.10.31
Новый ГУЙ в техно-демке Universal Traveller