Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как получить из active directory поле description компьютера средствами transact-sql ?  [new]
andyvv
Member

Откуда:
Сообщений: 20
друзья !

подскажите, пожалуйста, как из active directory получить поле description какого-нибудь компьютера средствами transact-sql ? насколько я понимаю, поле description (в отличие от, скажем, поля location) - multivalued поле и требует особого обращения.

поэтому код

select description from openquery ( ADSI, '<LDAP://...>;(objectcategory=computer);description;subtree' )

не работает, а выдаваёт ошибку

Msg 7346, Level 16, State 2, Line 1
Cannot get the data of the row from the OLE DB provider "ADSDSOObject" for linked server "ADSI". Could not convert the data value due to reasons other than sign mismatch or overflow.

заранее спасибо за любые подсказки-намёки-идеи !
24 дек 08, 11:40    [6612189]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
multivalued вы в запросе openquery не получите
24 дек 08, 14:09    [6613740]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
andyvv
Member

Откуда:
Сообщений: 20
уважаемый Glory !

могу я вас просить о чуть более развёрнутом ответе ?

ав
24 дек 08, 14:26    [6613904]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
andyvv
уважаемый Glory !

могу я вас просить о чуть более развёрнутом ответе ?

ав

Хм. Это н_е_в_о_з_м_о_ж_н_о. Потому что multivalued не преобразуется ни к одному типу данных MSSQL. Это особенность этих полей АД.
24 дек 08, 14:28    [6613932]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
andyvv
Member

Откуда:
Сообщений: 20
уважаемый Glory !

словом "это" вы называете openquery ? если это будет не openquery, а что-то другое, то каков ответ ?

ав
24 дек 08, 14:38    [6614017]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
andyvv
уважаемый Glory !

словом "это" вы называете openquery ? если это будет не openquery, а что-то другое, то каков ответ ?

ав

Спросите тогда в форуме по этому "что-то другое", с помощью чего вы будете работать с АД
24 дек 08, 14:40    [6614050]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
1) Аналогичные грабли

SELECT * FROM OPENQUERY( ADSI, 
    'SELECT company, displayName, telephoneNumber, mail, description, initials, sn, givenName, sAMAccountName
     FROM ''LDAP://....'' 
     WHERE objectCategory = ''Person'' AND objectClass= ''user'' 
     ')  

Msg 7346, Level 16, State 2, Line 23
Cannot get the data of the row from the OLE DB provider "ADSDSOObject" for linked server "ADSI". Could not convert the data value due to reasons other than sign mismatch or overflow.


Прийдется работать без поля description

2) Кто может прояснить почему при запросе
SELECT * FROM OPENQUERY( ADSI, 
    'SELECT company, displayName, telephoneNumber, mail, initials, sn, givenName, sAMAccountName
     FROM ''LDAP://....'' 
     WHERE objectCategory = ''Person'' AND objectClass= ''user'' 
     ')  

Поля в Results выводятся в обратном порядке, т.е.
sAMAccountName, givenName, sn, initials, mail, telephoneNumber, displayName, company
13 апр 10, 11:37    [8620321]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Poleax

1) Аналогичные грабли

Это не грабли. Это ограничение на типы данных

Poleax

Поля в Results выводятся в обратном порядке, т.е.
sAMAccountName, givenName, sn, initials, mail, telephoneNumber, displayName, company

Ну так укажите вместо * поля в нужном вам порядке
13 апр 10, 12:04    [8620615]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Poleax
Member

Откуда: msk
Сообщений: 208
Glory
Poleax

[quot Poleax]
Поля в Results выводятся в обратном порядке, т.е.
sAMAccountName, givenName, sn, initials, mail, telephoneNumber, displayName, company

Ну так укажите вместо * поля в нужном вам порядке


Это все понятно, что можно указать порядок полей, но мне интересно почему при
SELECT * FROM OPENQUERY...
порядок полей переворачивается.
13 апр 10, 12:16    [8620727]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Poleax
Glory
Poleax

[quot Poleax]
Поля в Results выводятся в обратном порядке, т.е.
sAMAccountName, givenName, sn, initials, mail, telephoneNumber, displayName, company

Ну так укажите вместо * поля в нужном вам порядке


Это все понятно, что можно указать порядок полей, но мне интересно почему при
SELECT * FROM OPENQUERY...
порядок полей переворачивается.

Потому что в таком порядке они возвращаются из ldap-а
13 апр 10, 12:17    [8620738]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
da haroch
Member

Откуда:
Сообщений: 323
о товарищи..прошла по темам и случайно нашла эту.
так всё таки есть какой нить выход чтобы получить поле description из АД. там преобразовать как нить или ещё чо нить сделать можно?
2 фев 12, 13:48    [12018821]     Ответить | Цитировать Сообщить модератору
 Re: как получить из active directory поле description компьютера средствами transact-sql ?  [new]
1
Guest
CLR
3 фев 12, 20:04    [12029990]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить