![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]А как проявляется неработоспособность?