|
|
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
В форуме часто встречал обсуждение сабжа... в конце - концов сам столкнулся с проблемой. Вот, выставляю на растерзание свое решение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Использовать: Create table Tree(Id NUMERIC(18,0), TreeId NUMERIC(18,0), Name Varchar(200)) insert... SELECT t.name, sc.OUT_UROV FROM Tree t JOIN STARTING_CONNECT('Tree', 'Id', 'TreeId', NULL, 'NAME', NULL) sc ON (t.id=sc.id) Рассмотрю все замечания/предложения (конструкция будет сипользована в реальном проекте, поэтому буду рад, если кто - нибудь че-нить заметит, или предложит). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 20:52 |
|
||
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
А в чем проблема ? И, кстати, зачем numeric(18,0), если можно, если надо, int64 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2003, 01:40 |
|
||
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
Похожее решение и мне делать пришлось, но я еще добавил LEVEL - текущий уровень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2003, 11:53 |
|
||
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
Привет >2Johnmen: - проблема в том, что реализации альтернативы START WITH ... CONNECT BY ... в FB на форуме я не нашел. Были вырианты с использованием временных таблиц... это не наш путь. Тему в форум бросил, чтобы обсудить конструкцию (будет повсеместно использоваться в реальном проекте -> требования к ней повышены) - а есть разница между numeric(18, 0) и int64? > 2nik_x - LEVEL, или OUT_UROV - всего лишь вопрос названия (кроме того LEVEL - зарезервир. слово... не люблю использовать в названиях). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2003, 13:03 |
|
||
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
2:oz извиняюсь за незаконченную (неправильно сформулированную) мысь... Разницы в имени действительно нет. Хотел сказать про анализ на глубину вложения рекурсий. На платформе Маст-дай это что-то около 700 (точно не помню) на юниксах - до 900. Хотя мне практически такого значения достичь не удалось; маусимум 18 - по обходу дерева. На версии FB 1.0 предложение: FOR EXECUTE STATEMENT - работать не будет, не было там еще такого... А в остальном - больше ничего и не придумаешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 05:51 |
|
||
|
К вопросу о STARTING WITH... CONNECT BY... в FB (1.5)
|
|||
|---|---|---|---|
|
#18+
2nik_x: версия FB оговорена в сабже. Насчет больше ничего и не придумаешь : испытания в боевых условиях заставили внести несколько фиксов: 1. Прорисовка дерева в обе стороны 2. Старт для прорисовки инициируется условием (для полной совместимости с Oracle), а не значением. Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32312527&tid=1579710]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 482ms |

| 0 / 0 |
