Текущий архив: 2003.04.03;
Скачать: CL | DM;
ВнизСвязанные таблицы, запросы по запросам... Найти похожие ветки
← →
Lancelot (2003-03-16 23:48) [0]Здравствуйте, коллеги. Извините за глупый вопрос, но можеть быть, кто-нибудь поможет?..
Предположим, у нас есть 2 таблицы со связью мастер-деталь (и, соответственно, есть ADOConnection, 2 штуки ADOQuery (MasterQuery и DetailQuery) и 2 DataSource (MasterDS и DetailDS)).
«…Запрос для MasterQuery:
select VendorNo, VendorName, Country, City, State, Preferred
from vendors
Запрос в DetailQuery должен выбирать только те записи, VendorNo в которых является текущим в MasterDS.Dataset. Для этого установим свойство DataSource компонента DetailQuery в значение MasterDS.
Запрос для DetailQuery следующий:
select PartNo, OnOrder, OnHand, ListPrice, Description, Cost
from parts
where VendorNo = :VendorNo
:VendorNo в части where – параметр запроса. Параметры при установленном DataSource берутся из него.»
Вышеприведенный текст взят из статьи Д. Сидорова «Компоненты ADO», которую часто можно встретить во всяких интернетовских факах, библиотеках т.п. И надо сказать, черт подери, что это все работает! Работает, пока у нас не заведется третья таблица - субдеталь, для которой мастером будет DetailQuery.
Увы, тогда аналогичный запрос по результатам этой (DetailQuery) выборки не будет возвращать ни-чер-та.
Можно ли это обойти? или так и должно быть?
Заранее багодарю.
← →
alex55 (2003-03-17 00:05) [1]Я на этой третьей таблице раньше видел много глюков. Обычно удавалось их победить, обработав "вручную" события связанные с перемещениями в мастер-таблице.
← →
Lancelot (2003-03-17 00:12) [2]Гм, я так и делаю. Но душа хочет прекрасного, ведь СУБД у нас же такая умная, ну пусть сама записи и фильтрует...
← →
alex55 (2003-03-17 00:28) [3]СУБД-то может и умная, да вот с выпуском новых версий Delphi спешат некоторые - не успевают старые ошибки исправить, а уже новые накатились.
Страницы: 1 вся ветка
Текущий архив: 2003.04.03;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.009 c