powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсия в хранимой процедуре
5 сообщений из 5, страница 1 из 1
Рекурсия в хранимой процедуре
    #32011286
ToliK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Вопрос о рекурсии в хранимых процедурах.
Платформа: MS SQL 7.0
Есть хранимая процедура. Есть таблица, в ней лежит дерево.
Задачи:
1. выбрать подветви, одной из вествей
2. в зависимости от целой кучи условий, произвести модификацию (что-то удалить, что увеличить, что то уменьшить). Действия производяться только на одном уровне дерева... и обрабатывать ветвь надо с листьев девева... а известен только корень.

т.е. говоря проще, сначала надо получить данные, потом их обработать...

для реализации я использовал, курсор, так как мне надо будет потом с этими данными работать. Но при попытке рекурсивного вызова, MSSQL грит, что такой курсор уже объявлен...

Я бы с удовольствием использовал временную таблицу, но мне же работать с данными надо будет...
Если кто, что сообразит, очень прошу ответить...
...
Рейтинг: 0 / 0
Рекурсия в хранимой процедуре
    #32011290
MasterBo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курсор, небось, глобальный (по умолчанию)?
Попробуйте так:

DECLARE cur CURSOR LOCAL FOR
.. ну и так далее
...
Рейтинг: 0 / 0
Рекурсия в хранимой процедуре
    #32011296
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решаю подобные задачи. Все рекурсивные алгоритмы реализуются с помощью цикла и стекоподобной структуры (временная таблица).

>и обрабатывать ветвь надо с листьев девева...
Вот тут позвольте не согласиться - обрабатывать лучше с какого-то узла, являющегося корнем поддерева. Для того, чтобы с деревом/поддеревом можно было удобно работать, нужно для каждой записи использовать флаги узел/лист и т.п.

Я использую SQL2000. Для возврата поддерева использую UDF, возвращающую таблицу. В параметрах UDF указываю, должны ли возвращаться узлы или листья (или и то и другое), должны ли выводиться логически удаленные записи и другие параметры.
...
Рейтинг: 0 / 0
Рекурсия в хранимой процедуре
    #32011305
ToliK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to MasterBo

ну ё моё... надоже мне так лохануться...

MasterBo жму вашу мужественную лапу, все работает, большое спасибо...
...
Рейтинг: 0 / 0
Рекурсия в хранимой процедуре
    #32011306
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гляньте
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=1157&Idle=365&Sort=0&Order=Descend&Page=4Session
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Рекурсия в хранимой процедуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]