Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

поведение ADODataSet в Master-Detal [D6, MSSQL]


АлеКо ©   (2005-08-08 08:27:00) 

Добрый день господа.
Пытаюсь связать два ADODataSet в Master-Detal. Связка не работает, если в результате подчиненного DataSet выступает результат отработки хранимой процедуры (свойство CommandType = cmdStoredProc). Если выполняются запросы (CommandType = cmdText) то связка работает.
Подскажите, как решить проблему.


sniknik   (2005-08-10 14:40:00) [1]

> Для интерисующихся хочу сказать что данныю ошибку побороть не смог.
?
> [3]
не пробовал значит? в [9] писал что проверил и это помогло. а потом... руками сделать фильтр - ADODataSet1.Sort:
= 'Link'; да это проблемно, это за "побор" ошибки не считается... ;о))


АлеКо   (2005-08-10 10:18:00) [2]

Для интерисующихся хочу сказать что данныю ошибку побороть не смог. Пришлось для связки Мастер-Деталь ручками фильтровать DataSet.

Все.


АлеКо   (2005-08-09 03:16:00) [3]

Мне кажется, что при наличии входного параметра предполагается передача данных из процедуры тоже в виде выходных параметров.

Или еще вариант. При связи Мастер-Деталь не происходит фильтрация по DataSet а происходит повторный запуск процедуры с указанием параметра. Этот параметр и является критерием отбора. Например так:

CREATE PROCEDURE [dbo].[DemoProc]
@Link Int
AS
SELECT Name2, Sort, Link_Up, Link FROM  V_KOMM_Ext
WHERE Link=@Link
ORDER BY Sort
GO


sniknik   (2005-08-08 12:05:00) [4]

хм... а ведь действительно не работает при cmdStoredProc... (проверил) требует параметр с именем поля (вместо создания индекса для фильтра) по которому связь, т.е. хотя рекордсет такой же но обработка отличается изза этого параметра...

и кстати виртуальное "лечение" по диагнозу пациента дало положительные результаты. ;о))
в общем причина "пациентом" указана верно.


АлеКо   (2005-08-08 09:58:00) [5]

Так работает

CREATE PROCEDURE [dbo].[DemoProc]
AS
SELECT Name2, Sort, Link_Up, Link FROM  V_KOMM_Ext ORDER BY Sort
GO

а так нет
CREATE PROCEDURE [dbo].[DemoProc]
@Mod Int
AS
SELECT Name2, Sort, Link_Up, Link FROM  V_KOMM_Ext ORDER BY Sort
GO


АлеКо   (2005-08-08 09:52:00) [6]

Вот какую закономерность я выяснил.
Если хранимая процедура имеет входные параметры то связка Мастер-Деталь не работает, если их нет то все Ок.
Как это можно объяснить????
И тем более как с этим бороться???


АлеКо   (2005-08-08 08:57:00) [7]

Либо это ограничение ADO или моя ошибка. Сколько работал с компонентом с подобными ограничениями я не сталкивался.
Хотел бы обратить внимание что хранимая процедура возвращает данные в виде SELECT временной глобальной таблицы, в конце процедуры таблица удаляется на чем собственно процедура и заканчивается.
Может в этом моя ошибка.


Anatoly Podgoretsky   (2005-08-08 08:51:00) [8]

sniknik ©   (08.08.05 08:49) [3]
О' Генри.


АлеКо   (2005-08-08 08:50:00) [9]

А что конкретно добавить?

Два ADODataSet связаны соотношением мастер-деталь. Если связанный ADODataSet это результат выполнения хронимой процедуры то связка не работает, если результат выполнения запроса то работает вот в этом весь вопрос. Если нужно что-то конкретное подскажи.


Anatoly Podgoretsky   (2005-08-08 08:49:00) [10]

У тебя наверно ошибка.


sniknik   (2005-08-08 08:49:00) [11]

странная разница... полученные рекордсеты ничем различатся не должны, а значит и поведение должно быть одинаковым.
но раз говориш изза этого (проверять не буду), т.е. дагноз тебе ясен... ну тогда что мешает составить команду на вызов процедуры и вызвать ее с CommandType = cmdText? елементарно
EXEC MyProc :Par1, :Par2
и все. проблема решена. (вернее проведено лечение по диагнозу поставленному самим пациентом ;о)))


evvcom   (2005-08-08 08:45:00) [12]


> Подскажите, как решить проблему.

А ты толком ничего и не описал. Ноль информации.


Наверх

Титульная страница Поиск, карта сайта Написать письмо