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

Вниз

Master-detail хранимой процедуры   Найти похожие ветки 

 
Vick ©   (2003-06-10 18:54) [0]

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


 
MOA ©   (2003-06-10 18:57) [1]

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


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

>MOA

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


 
MOA ©   (2003-06-10 19:04) [3]

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


 
Vick ©   (2003-06-11 10:10) [4]

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


 
MOA ©   (2003-06-11 10:23) [5]

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


 
Vick ©   (2003-06-11 10:31) [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:37) [7]

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

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

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


 
MOA ©   (2003-06-11 10:37) [8]

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

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

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


 
Vick ©   (2003-06-11 10:50) [9]

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


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

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


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

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

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 Вы беоёте из первого датасета.

Удачи!



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
3-7290
Alek Aaz
2003-06-04 12:10
2003.07.03
Table is busy


1-7409
OlDemon
2003-06-20 08:19
2003.07.03
Появление дочерних окон


8-7557
Andrey007
2003-03-20 14:17
2003.07.03
Как программно изменить разрешение монитора?


14-7671
Pesh
2003-06-14 20:21
2003.07.03
Как узнать, что текстовый файл не пуст?


14-7659
INTAARI
2003-06-16 11:11
2003.07.03
программа которая должна работать постоянно