Я бы все на SQL запрос возложил (тем более, что нормальная база может нативно с древовидной структурой работать, да и не только, может еще группировки хитрожопые делать и т.п.).
Писать такое, что в первом примере - это вообще какой-то идиотизм. У меня запрос просто препроцессором обрабатывается (ну там например имя таблички подставить), передается в АДО, туда же параметры передаются, запрос выполнился, вернул датасет, делай с ним что хочешь (можно в коллекцию его передать, дерево наполнять не обязательно по всей иерархии, достаточно лишь первые уровни заполнить, остальное подтягивать из коллекции при раскрытии узла). Всего 3 строчки кода, две из них для транзакций.
Если речь конечно идет не о стремных базах (ну там MS Access, dbfки и прочее).
|