FreePaul
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Пишу обратно в эту же тему, т.к. вопрос вновь по использованию Delphi и получению информации из AD. Имею: Delphi 10.1, ADOConnection + ADOQuery. Запрос: Код: SELECT cn ,ou , whenCreated ,whenChanged ,Name ,distinguishedName ,ADsPath , sAMAccountName ,userPrincipalName, mail ,otherMailbox, proxyAddresses ,dNSHostName ,operatingSystem ,operatingSystemVersion ,operatingSystemServicePack, logonCount, Department, physicalDeliveryOfficeName, description, title, userAccountControl, pwdLastSet, accountExpires FROM 'LDAP://XXX' WHERE objectClass='user' and objectClass<>'computer' order by name ASC | Все это "добро" через стандартный же DataSource выводится в DBGridEh. Однако, при запуске приложения получаю ошибку вида: Цитата: Project <XXX> raised exception class EVariantTypeCastError with message 'Could not convert variant of type (Dispatch) into type (OleStr)'. | Я понимаю, что в БД ActiveDirectory часть данных хранятся, мягко говоря, не совсем в том виде, в котором мне хотелось бы их видеть. Но, к сожалению, к SQL-запросу, получающему эти данные, невозможно добавить процедуры преобразования. Все, что я смог нагуглить - это решения примерно 2013 года с использованием к примеру IADsLargeInteger. Если я правильно понял, в D10.1 выпилен IADsLargeInteger. Как можно получить удобочитаемые и понимаемые стандартными (и EhLib'овскими) компонентами сведения? В частности, интересуют description, accountExpires | Всего записей: 935 | Зарегистр. 07-08-2002 | Отправлено: 05:14 30-01-2017 | Исправлено: FreePaul, 05:19 30-01-2017 |
|