|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.11.2017, 14:32 | #1 |
Регистрация: 15.11.2017
Сообщений: 3
|
Не удается выполнить запрос к АД.
Добрый день! Необходимо выбрать данные из AD. Вроде как задача простая, в инете куча инфы. Но, не удается.
С необходимостью работать с AD столкнулась впервые. В делфи не выполняется запрос: qADSelect.SQL.Add('select * from openquery("XXX.AUTO.ACC",''<LDAP://auto.acc/OU=auto,DC=auto,DC=acc>;(&(objectCa tegory=organizationalUnit));objectG UID,distinguishedName;subtree'') '); qADSelect.Open; На open выдает ошибку "Произошла одна или несколько ошибок во время работы команды". Копалась на форумах, нашла рекомендацию создать linked server. Создала: name XXX.AUTO.ACC, Active Directory Services 2.5, DsDSOObject, EAOrdersLoggingProxy. В MSSQL Server Manager запрос выполняется, а в Делфи - никак. В TADOConnection прописано Provider=ADsDSOObject;Encrypt Password=False;Data Source=172.16.xx.xxx;Location=xxx.A UTO.ACC;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648; IP адрес - ip сервера, к которому прилинковала свой. Может кто подскажет, что именно я делаю не так? Последний раз редактировалось ViktoriyaB; 15.11.2017 в 15:22. |
15.11.2017, 16:04 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Тот запрос через сиквел провайдером MSDASQL
а если запрос примерно такой: SELECT * FROM 'LDAP://auto.acc' то и настраивать как провайдер ADSDSOObject
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.11.2017, 12:51 | #3 |
Регистрация: 15.11.2017
Сообщений: 3
|
Проблема решена прямым подключением к линкованному серверу.
Теперь возникла другая ошибка. При выполнении кода DisName := 'LDAP://auto.acc/'+qADSelect.FieldByName('distinguis hedName').AsString; Comp := GetObject(DisName) as IADsContainer; //получает ссылку на объект Usr := Comp.Create('user' , 'test1') as IADsUser; //создает объект в данном контейнере Usr.SetInfo; на последней строке вылетает ошибка "Указан недопустимый dn-синтаксис". Может кто знает, в чем может быть дело? |
17.11.2017, 09:16 | #4 |
Регистрация: 15.11.2017
Сообщений: 3
|
Я победила этого страшного зверя.
Опишу, вдруг кому пригодится. Данная ошибка означает, что поле LDAPDN (оно же "distinguishedName") не соответствует требуемому синтаксису или содержит значения атрибутов, не соответствующих синтаксису данных типов атрибутов. Usr := Comp.Create('user' , 'CN='+UAccName) Обязательно указать CN перед именем пользователя! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не удается обработать запрос MySQL | Luca Brasi | PHP | 2 | 03.02.2015 23:57 |
Не получается выполнить ajax запрос | barfly | JavaScript, Ajax | 5 | 09.08.2012 06:37 |
Не удается выполнить команды сопроцессора! | VintProg | Общие вопросы Delphi | 1 | 21.09.2011 21:38 |
Не получается выполнить запрос | artemavd | БД в Delphi | 14 | 06.08.2009 20:44 |