powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Деревья - возврат дочерних обьектов ... (from FAQ)
9 сообщений из 9, страница 1 из 1
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32833432
Гость1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, помогите пожалуйста разобраться с кодом.
Создал процедуру как написано. Но немогу разобраться каким образом она выдает нужный результат.
Я создал три таблицы

___ PK___CHAR__ FK
t1 id_t1 name
t2 id_t2 name id_t1
t3 id_t3 name id_t2

но
Код: plaintext
1.
SELECT *
FROM sp_child_tree (NULL);
ничего не возвращет.
Как мне изменить код процедуры, что бы работала ???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE PROCEDURE "DBA"."sp_child_tree"(IN @tree_id integer)
/*
  @tree_id - начальный узел дерева; если null - возвращается все дерево
*/
BEGIN
  with recursive tmp(tree_id, caption, parent_id, level, full_name) 
  as (
    // Возвращаем родителей (записи верхнего уровня дерева)
    select tree_id, caption, parent_id,  0 , caption
    from tree   
    where (@tree_id is null and parent_id is null) or 
      (@tree_id is not null and tree_id = @tree_id)
    union all
    // Возвращаем дочерние по отношению к родительским записям
    select t.tree_id, t.caption, t.parent_id, tmp.Level +  1 , 
      tmp.full_name || '\' || t.caption
    from tree t
      inner join tmp on t.parent_id = tmp.tree_id
  )
  select tree_id, space(level *  5 ) || caption as caption, parent_id
  from tmp
  order by full_name;
END
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32833543
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость1SELECT *
FROM sp_child_tree (NULL);
Что-то такого никогда не видел, вроде надо делать "call sp_child_tree(NULL)". Может дело в этом?
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32834017
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюк.
Столкнулся полгода назад при формировании html страниц процедура вызывала другую процедуру с параметром, которая собственно и формировала страничку. Если вызов процедуры делал через select, то на третьем проходе сервак зависал. Какая тогда версия стояла не помню. Сделай вызов через call - будет работать.
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32834031
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По этой ссылке в FAQ даже указана версия билда, где ошибка была исправлена:
http://www.sql.ru/faq/faq_topic.aspx?fid=203

P.S. Не забывайте указывать номер билда, будет легче понять, старая это ошибка или новая.
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32834486
Гость1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые специалисты.
Билд 9.0.2.2451
Я только начинаю разбираться с ASA.
Я не могу понять, где мне модифицировать код в хранимой процедуре, что бы она работала с таблицами t1, t2 и и t3?

Если можна, какой-нибудь рабочий пример. Так намного легче разобраться.


Спасибо за терпение.
lotr@mail.ru
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32835670
Гость1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Нашел в документации.
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32835703
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем для дерева аж 3 таблички ? В приведенном в FAQ примере используется только одна таблица "tree" с полями "tree_id" и "parent_id".
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32835755
Гость1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эти таблицы связаны между собой втор. ключами.
Задача:

Получить для данной таблицы значения всех вторичные ключей связанных таблиц с данной (по PK), и если оные существуют, то и для них провернуть эту же операцию.

Хм. Вообще возможно ли это?
...
Рейтинг: 0 / 0
Деревья - возврат дочерних обьектов ... (from FAQ)
    #32835761
Гость1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В программе следующее.
Есть цепочка документов. (они связаны между собой FK-PK)
нужно реализовать открытие связанных документов. Хотелось бы одним махом получить список нужных id, ну а далее дело техники.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Деревья - возврат дочерних обьектов ... (from FAQ)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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