Главная страница
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.02 c
1-7457
VID
2003-06-23 10:13
2003.07.03
Второй Clipboard


14-7658
INTAARI
2003-06-16 18:42
2003.07.03
Где можно взять WinSocket 2.0 и DCOM


14-7719
ZeroDivide
2003-06-10 12:40
2003.07.03
Бесконечная история 1


14-7624
Knight
2003-06-15 23:22
2003.07.03
BIOS


14-7722
swordent
2003-06-17 10:45
2003.07.03
TWebBrowser