Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Master-detail хранимой процедуры [D5, MSSQL]


Vick ©   (2003-06-10 18:54:00) 

Доброго всем вечера!
Возникла проблема, может кто подскажет: у меня есть 2 АДО-датасета, связанные между собой Master-detail, но detail - выполняется хранимая процедура - и связка почему-то не работает. Как это исправить или обойти???
Заранее спасибо.


MOA   (2003-06-11 10:58:00) [1]

В пред-предылдущем посте я привёл выражение из "детального!" датасета, чтобы связка и впрямь стала связкой "мастер-деталь". В первом датасете запрос:

select DOC_ID, NUM_DOC from DOC_REPORTS where DAT_ >= :DAT

Во втором датасете (детали) запрос:

select DOC_ID, CODE_EKKA, NUMBER, PRICE from DOC_TABLES where DOC_ID = :DOC_ID
,где :DOC_ID Вы беоёте из первого датасета.

Удачи!


MOA   (2003-06-11 10:55:00) [2]

Естественно, в разных. Мастер-деталь - это когда в одном из датасетов (мастере) находится ключевое поле, по которому выбираются записи из второго. Например, в "мастере" - ИД накладной, в "детали" - товары в накладных. Товары для данной накладной отбираем из "детали" по ИД накладной.
Удачи!


Vick   (2003-06-11 10:50:00) [3]

Эти 2 запроса в разных датасетах находятся!!!


MOA   (2003-06-11 10:37:00) [4]

А это не мастер - деталь. Мастер деталь - это

select DOC_ID, CODE_EKKA, NUMBER, PRICE from DOC_TABLES where DOC_ID_ >= :DOC_ID

Всё чинно - у Вас к тому же имя параметря совпадает с именем мастер-поля.
Удачи!


MOA   (2003-06-11 10:37:00) [5]

А это не мастер - деталь. Мастер деталь - это

select DOC_ID, CODE_EKKA, NUMBER, PRICE from DOC_TABLES where DOC_ID_ = :DOC_ID

Всё чинно - у Вас к тому же имя параметря совпадает с именем мастер-поля.
Удачи!


Vick   (2003-06-11 10:31:00) [6]

>>кажеться эта ерунда не работает, потому что в процедуре есть >>параметры
>А вот это место мне совсем не ясно. Как же без параметров >организовать Detail?

Элементрано, в AdoDataSet есть свойсво Master-Detail.
Усть 2 запроса типа:

select DOC_ID, NUM_DOC from DOC_REPORTS where DAT_ >= :DAT

и

select DOC_ID, CODE_EKKA, NUMBER, PRICE from DOC_TABLES where DAT_ >= :DAT

Связываю эти 2 датасета по полю DOC_ID - не пашет, как только убираю во втором where DAT_ >= :DAT- все отлично.



MOA   (2003-06-11 10:23:00) [7]

Я имел в виду, в качестве первого шага - посмотрите профайлером MSSQL, какие значения аргументов получает Ваша процедура. Как правило, этого достаточно, чтобы быстро найти место ошибки.
>кажеться эта ерунда не работает, потому что в процедуре есть параметры
А вот это место мне совсем не ясно. Как же без параметров организовать Detail?
Удачи!


Vick   (2003-06-11 10:10:00) [8]

Процедура выдает, то что ей сказано, при чем правильно, но я должна на в Делфи связку делать, мне кажеться эта ерунда не работает, потому что в процедуре есть параметры, потому что и просто запрос с параметрами тоже не работает :(((((


MOA   (2003-06-10 19:04:00) [9]

А если посмотреть профайлером (если у Вас 2000, или SQL Trace, если 7) - посмотрите аргументы процедуры.
Удачи!


Vick   (2003-06-10 18:59:00) [10]

>MOA

А просто первый датасет выводит все свои данные, а второй - все свои, что самое главное, выполняю то же самое не хранимой процедурой, а запросом - все отлично


MOA   (2003-06-10 18:57:00) [11]

А как проявляется неработоспособность?


Наверх

Титульная страница Поиск, карта сайта Написать письмо