|
|
|
| http://www.ibase.ru/devinfo/tree_sum.txt | |
|
| |
|
|
|
| проще написать самому.
Опять же рекурсия | |
|
| |
|
|
|
| да - проще
я уже третий день пишу эти десять строк кода
осталось немного - 3 строки....
забыл как клон рекордсета сделать............
Вы не помните???
вроде так
Set rs = rst.Clone() | |
|
| |
|
|
|
| Ну очень дурацкий вопрос:
Час, ты рекурсию выбрал по религиозным причинам?
предлагаю немножко другой подход
1. в таблице с данными дерева завести поле с полным путем к узлу
например
01 - стартовая запись
01-02 - дочерняя запись
01-02-01 ребенок
01-02-01-04 внучек
тогда самое глубокое вложение легко найти через Len()
и пересчет всех вложений будет выглядеть примерно так
а) находим самую длинную строчку
б) присваеваем это значение переменной
в) просчитываем все поля с данной длинной
г) уменьшаем переменную на 3
д) переход к пункту в) и подсчет деток через SQL как я уже писал
е) все это в цикле do .. loop с условием выхода переменная = 0
P. S. Может я чего то не догоняю и проблема в другом извините... | |
|
| |
|
|
|
|
| а какой длины должно быть поле в котором храниться путь будет - оно не известно, т.о. накладывается изначально ограничения на кол-во вложений.
мало того нужно контролировать кол-во цифр в группе иначе метод Len() даст полный жоп, тут нужно будет подсчетом разделителей искать макс вложения. | |
|
| |