Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c