| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > запрос через ADO к Active Directory |
| Автор: dee63 29.7.2011, 08:22 | ||||||||
| Всем привет! Стала задача- запрос к базе АД (для примера брал винсерв2003), с целью выбрать всех отключенных пользователей. Сделал так: Кинул ADOConnection с такими настройками (см скрин 1), ![]() строка инициализации такая:
Тут все отлично. все работает и коннектится. Далее, кидаю AdoQuery с такими настройками (см скрин 2). ![]() Запрос на выборку всех пользователей он выполняет, список выводт-работает вообщем. Далее идем к главной задаче- список всех отключеных пользователей. Прочиталhttp://support.microsoft.com/kb/269181/ru. Значит мне надо написать запрос так:
т.е. в домене big.com выбрать всех пользователей, у которых при поразрядном сравнении атрибута будет выявлен флаг, указывающий на то, что пользователь отключен, т.е. выполнится условие
Собственно, произвожу запрос и получаю в итоге ошибку:
Вообщем запрос не удался. Смотрю секцию Parameter (см скрин 3) ![]() и не понимаю что же тут от меня нужно, ведь я данные получать должен, а не передавать. Где я не прав? Прошу знающих направить на путь истинный, и чтоб путем был не гугл. |
| Автор: 14SatanA88 29.7.2011, 08:43 |
| в SQL-запросе если обнаружен символ ":", запрос считает, что ему нужно передавать параметр. насколько я понимаю, тебе вообще параметры здесь не нужны. поиграйся с кавычками. |
| Автор: 14SatanA88 29.7.2011, 11:13 |
| в любом случае нужно как-то преобразовать условие (UserAccountControl:1.2.840.113556.1.4.803:=2) к типу ПОЛЕ = ЗНАЧЕНИЕ |
| Автор: Vas 29.7.2011, 14:51 | ||
А собственно запрос
что возвращает? |
| Автор: dee63 1.8.2011, 09:05 | ||||
Данный запрос вернул ошибку операции. Более того, любой другой запрос возвращает сейчас тоже самое. Хотя в пятницу все отлично работало. Не понял почему |
| Автор: dee63 3.8.2011, 10:56 | ||||
| Кароче все оказалось предельно просто! Благодаря подсказке одного участника с SQL.ru оказкалось, что: 1. в AdoQuery надо выставить
2. в SQL вставлять
После этого все запрашивается. НО есть непонятка с тем, что при :1.2.840.113556.1.4.803: (И) выводит список отключенных пользователей (как заявлено МС), а вот при :1.2.840.113556.1.4.804: (ИЛИ) в список попадают еще пользователи, которые тоже отключены, и галки у них стоят ровно такие же, как и у тех, которые выводились при (И). Вообщем такой вот фарш, но работает запрос. Всем спасибо за участие |