Запрос AD из sql server 2008 Поле описания выдает ошибку - PullRequest
3 голосов
/ 28 марта 2012

Я пытаюсь запросить Active Directory с помощью следующего SQL-запроса, который прекрасно работает.

SELECT * FROM OpenQuery(ADSI, 
                         'SELECT title, displayName, sAMAccountName, givenName, 
                                 telephoneNumber, facsimileTelephoneNumber, sn,  
                                 mail, physicalDeliveryOfficeName
                          FROM ''LDAP://DC=mydomain,DC=org'' 
                          WHERE sAMAccountName = ''myUser''')

Когда я добавляю атрибут description, я получаю следующую ошибку:

Сообщение 7346, Уровень 16, Состояние 2, Строка 6
Не удается получить данные строки от поставщика OLE DB "ADSDSOObject" для связанного сервера "ADSI". Не удалось преобразовать значение данных по причинам, отличным от знака несоответствие или переполнение.

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Возможности запросов SQL / ADO в Active Directory очень ограничены - я бы старался по возможности избегать их использования.

Причина здесь в том, что атрибут description в Active Directory является многозначным- он может содержать несколько значений (что невозможно в модели реляционной базы данных).

Следовательно, поставщик запросов SQL / ADO не может прочитать ни один из этих многозначных атрибутов из LDAP -нет никакого способа или опции или флажка, чтобы включить это - это просто невозможно.

0 голосов
/ 29 марта 2012

У меня та же проблема при получении поля Description из AD, когда я пытаюсь использовать ADsDSOObject и ADO.

, вам нужно вводить значения через For Each или Do until ... EOF тип заявления.

Вот хороший пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...