Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Как сделать рекурсивную функцию возвращающую путь по дереву до элемента. id - номер элемента, id_parent - номер родителя. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 08:18 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Тут как я понимаю проблема в том, что функция может возвратить одно значение. Процедур в PG нет. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 09:18 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Youra PolishukТут как я понимаю проблема в том, что функция может возвратить одно значение. Процедур в PG нет. Как быть? 1. Возвращай массив. INT4[], например. 2. Для этой задачи не нужна рекурсия, так как в этой задаче не нужен стек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 10:37 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Вот переделанный пример. У меня не работает. При вызове select GetPath(4); Пишет ошибку: ERROR: set-valued function called in context that cannot accept a set КОНТЕКСТ: PL/pgSQL function "getpath" line 5 at RETURN NEXT Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 11:45 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Youra PolishukВот переделанный пример. У меня не работает. При вызове select GetPath(4); Пишет ошибку: ERROR: set-valued function called in context that cannot accept a set КОНТЕКСТ: PL/pgSQL function "getpath" line 5 at RETURN NEXTselect * from getpath(4); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 11:51 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Заработало. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 12:00 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Как поставить ограничение при выборке всех id дерева. Передаю в функцию id вершины дерева. Мне нужно вернуть все элементы этого дерева. Не понимаю почему, но не срабатывает условие выхода из цикла IF id = 0 OR NOT FOUND THEN! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 12:46 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Youra PolishukКак поставить ограничение при выборке всех id дерева. Передаю в функцию id вершины дерева. Мне нужно вернуть все элементы этого дерева. Не понимаю почему, но не срабатывает условие выхода из цикла IF id = 0 OR NOT FOUND THEN! Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:44 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Вот такая функция работает. Можно как-то задать row_id1 типа integer? Мне не нужена вся строка. Достаточно только id. Что можно в этой функции подправить? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:16 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
может быть сделать ineteger вместо doc_tree%ROWTYPE, SELECT id вместо SELECT * и row_id1 вместо row_id1.id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 16:01 |
|
||
|
Рекурсивный перебор
|
|||
|---|---|---|---|
|
#18+
Понял. Когда я таким образом запускаю функцию. Как мне объявить, что возвращается поле с названием id? Код: plaintext Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 07:43 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2004346]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 413ms |

| 0 / 0 |
