И ваше предложение анлоадить драйвер как раз оставляет возможность аккуратно переполнить стек и выключить драйвер из цепочки обработчиков без уведомления прикладных программ, которые могут требовать наличие этого драйвера для соблюдения безопасности. Уж лучше обрушить систему…
Не стоит к «уйме возможностей» добавлять еще одну.
Анлоадить драйвер — это оставить потенциальную дырку в безопасности системы. Т.е. можно (потенциально) убить любой драйвер (а он может что-то там защищать) в системе переполнив его стек…
Для небольших деревьев я использую несколько иной подход — написал класс, который формирует дерево в памяти, загружая поля ID, PARENT_ID, TITLE обычным селектом. Для большинства задач этого вполне хватает и гибкость такого подхода оправдывает некоторый расточительный расход памяти.
оффтоп: было бы неплохо чтобы автору топика добавлялась карма за то, что другие заносят его пост в избранное, а то пост полезный, а плюсануть не могу… пусть хоть так опосредованно перепадает благодарность :)
Сомневаюсь что в MS бы это прокатило. Там ресурсное планирование явно не как в наших конторах, и трудоемкость задач считается, наверное, очень адекватно. Так что отрабатывать бабло пришлось бы по полной программе…
Сам сижу в такой ситуации — вроде уже не в моготу там где я, но и уйти в свободное плавание не могу — удерживает мысль «а что завтра будет кушать мой ребенок» :(
— во внутреннем хэше класса хранятся «чистые» значения
— при инициализации (или наследовании) класса на некоторые параметры вешаются callback функции, генерирующие «view-значения» в отдельный хэш при установке значений set-методом
— get-метод (для унификации я не испульзую getter-методы наподобии Java) по умолчанию возвращает «view-значения», но может возвращать и «чистые» — зависит от текущего режима работы который устанавливается через SetMode с соответствующим параметром
И валидацию по типам (для данных запроса) я делаю отдельным классом, которому передается нужная «сущность» и у нее уже устанавливаются валидированые значения через бызовы метода set переданного экземпляра.
Не стоит к «уйме возможностей» добавлять еще одну.
Просто хочется выразить благодарность принятыми в данной системе способом, а не могу :)
Специфика моей работы (и той организации где я работаю) позволяет мне заниматься своими проектами… пока, во всяком случае.
PS
Но я рад за этого парня — выбирая между радостью от жизни и дооооолгими растянутыми и хорошо оплачиваемыми душевными муками он выбрал радость.
Если все будут пользоваться этим сервисом то кто же будет смотреть рекламу!!!??? :)
У себя я применяю следующую логику:
— во внутреннем хэше класса хранятся «чистые» значения
— при инициализации (или наследовании) класса на некоторые параметры вешаются callback функции, генерирующие «view-значения» в отдельный хэш при установке значений set-методом
— get-метод (для унификации я не испульзую getter-методы наподобии Java) по умолчанию возвращает «view-значения», но может возвращать и «чистые» — зависит от текущего режима работы который устанавливается через SetMode с соответствующим параметром
И валидацию по типам (для данных запроса) я делаю отдельным классом, которому передается нужная «сущность» и у нее уже устанавливаются валидированые значения через бызовы метода set переданного экземпляра.