|
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 5
|
|
Помогите пожалста с вызовом хранимой процедуры рекурсивно23.11.2010, 14:26. Показов 2993. Ответов 10
Метки нет (Все метки)
Таблица имеет структуру
FN_ID_DICT - id FN_PARENT_ID - id родителя FD_DATE - дата занесеения записи FA_SNAME - сокращ. наименование FA_NAME - полное наименование FA_OPIS - описание Процедура Create PROCEDURE My @DICT_ID int AS DECLARE @my_cursor CURSOR SET @my_cursor = CURSOR global SCROLL FOR SELECT * FROM Dictionary WHERE FN_PARENT_ID=@DICT_ID DECLARE @id int, @p_id int, @I int, @fname varchar(200), @sname varchar(200), @date_ datetime, @opis varchar(200) OPEN @my_cursor SELECT * FROM Dictionary WHERE FN_PARENT_ID=@DICT_ID ORDER BY FN_PARENT_ID ASC FETCH NEXT FROM @my_cursor INTO @id , @p_id, @fname, @sname, @date_, @opis WHILE @@FETCH_STATUS = 0 BEGIN if exists(SELECT * FROM Dictionary where FN_PARENT_ID=@id) EXEC MY @id FETCH NEXT FROM @my_cursor INTO @id , @p_id, @fname, @sname, @date_, @opis END; CLOSE @my_cursor ======================================== ====== В Делфях в ADODataset запрашиваю exec My 1 Ожидаю что вернёт все выбранные рекурсивно записи, анет тоолько первые вложенные в главный узел
0
|
|
| 23.11.2010, 14:26 | |
|
Ответы с готовыми решениями:
10
проблема с выполнением (вызовом) хранимой процедуры Создание хранимой процедуры, которая создает хранимые процедуры Вызов процедуры из хранимой процедуры |
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 13:38 | |
|
создай временную таблицу или табличную переменную и туда в курсоре делай инсерт, а в конце, после курсора, сделай селект из того, что получится...
0
|
|
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 13:40 | |
|
извиняюсь не разобрался сначала
0
|
|
|
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 5
|
|
| 25.11.2010, 16:44 [ТС] | |
|
А медленно не будет работать ???
0
|
|
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 17:05 | |
|
Хотелось бы узнать...
Ты хочешь получить что? всех детей указанного родителя? или я что-то не понимаю
0
|
|
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 17:14 | |
|
Вообще, мне кажется все вопросы по SQL лучше решать на этом сайте:
http://www.sql.ru/forum/actualthread.aspx?tid=122836&hl=%e4%e5%f 0%e5%e2%ee
0
|
|
|
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 5
|
|
| 25.11.2010, 17:14 [ТС] | |
|
Да.... Есть дерево... Мне надо по ID выбрать его и его потомков и отобразить ето в визуальном компоненте (TreeView) Например дерево справочников... Я хочу чтообы появлялась нужная ветвь , т.е. нужный справочник
0
|
|
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 17:16 | |
|
как раз твой вопрос)
0
|
|
|
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 5
|
|
| 25.11.2010, 17:18 [ТС] | |
|
Спасибо тебе посмотрю...
0
|
|
|
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 13
|
|
| 25.11.2010, 17:32 | |
|
в твоем случае будет выглядеть так :
create procedure my @ID_DICT int as begin select * into #T from Dictionary where FN_ID_DICT = 1 WHILE @@Rowcount <> 0 BEGIN insert into #T SELECT * FROM Dictionary where FN_PARENT_ID in (select FN_ID_DICT from #T) and FN_ID_DICT not in (select FN_ID_DICT from #T) END select * from #T order by FN_ID_DICT drop table #T end
0
|
|
|
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 5
|
|
| 25.11.2010, 17:45 [ТС] | |
|
Огромное тебе спасибо... Я сам ораклист и работа в sql servere меня чуть смутила... там это легко команда connect by prior... А здесь чуть надо подергать... Я теперь буду постоянно обращаться на этот форум нужная вещь
0
|
|
| 25.11.2010, 17:45 | |
|
Помогаю со студенческими работами здесь
11
Создание хранимой процедуры Написание хранимой процедуры Автозапуск хранимой процедуры Вызов хранимой процедуры Вызов хранимой процедуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|