Немогу получить данные из хранимой процедуры
От: Slavich 1 Украина  
Дата: 21.02.07 12:26
Оценка:
Всем добрый день

Может кто нить подмогнет, с возникшей проблемкой

Есть таблица в которой хранится структура (используется для построения иерархического меню)

CREATE TABLE "ObjectMenu"
(
"Id" INT NOT NULL PRIMARY KEY, /* ключевое поле идентифицирует запись (также по нем иденифицируется родитель) */
"Parent_Id" INT NOT NULL, /* ID родителя, данные наследуются с поля Id */
"Level" INT DEFAULT 0, /* уровень потомка */
"Name" VARCHAR(200) /*Название пункта*/
);

GO

Создаем процедуру, возвращающую цепочку от выбранного уровня, до корневого элемента @ID_PARENT — ID выбранного элемента

CREATE PROCEDURE GET_PARENTS
@ID_PARENT INT,
@OBJID INT OUTPUT,
@PARENTID INT OUTPUT,
@NAMEPARENT VARCHAR(200) OUTPUT,
@LEVELPARENT INT OUTPUT/*,*/

AS
/*SET NOCOUNT ON*/

WHILE (@ID_PARENT > 0)
BEGIN
SELECT @OBJID = OM.Id,
@PARENTID = OM.Parent_Id,
@NAMEPARENT = OM.Name,
@LEVELPARENT = OM.Level
FROM "ObjectMenu" OM
WHERE OM.Id = @ID_PARENT
Set @ID_PARENT = @PARENTID
END
/*SET NOCOUNT OFF*/
GO


Проблема:
При проходе цикла каждые предыдущие данные заменяются на текущие (насколько я понял) и
соответственно процедура выдает информацию только о самом верхнем уровне структуры.
Каким образом можно вытащить из процедуры весь набор данных? Или может я не на правильном пути
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.