Главная страница
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
14-1097579767
Kolan
2004-10-12 15:16
2004.10.31
Помогите с Turbo Basic


14-1097469635
Layner
2004-10-11 08:40
2004.10.31
SP2 на XP, последствия...


4-1096118680
X-Disa
2004-09-25 17:24
2004.10.31
Автозапуск проги


14-1097499680
Григорьев Антон
2004-10-11 17:01
2004.10.31
Может, кто подскажет? А то наш админ не смог :(


14-1097732763
zsv
2004-10-14 09:46
2004.10.31
Реестр в Win XP