Главная страница
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.015 c
1-7535
Dmitriy M. Volkov
2003-06-22 00:07
2003.07.03
меню с иконками basic/advanced


4-7763
BJValentine
2003-04-29 17:43
2003.07.03
DeleteFile


14-7708
Delirium
2003-06-17 16:05
2003.07.03
C# Builder vs VS.Net 2003


6-7580
softmaster
2003-04-28 21:26
2003.07.03
коннект с SMTP-сервером


1-7427
eLVik
2003-06-23 11:50
2003.07.03
Поиск файлов