powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему запрос LDAP возвращает пустые строки
3 сообщений из 3, страница 1 из 1
Почему запрос LDAP возвращает пустые строки
    #35542120
andron123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток коллеги.

Не поддаются логике следующая вещи.
1) Почему в LDAP запросе нельзя написать SELECT * FROM а надо перечислять все поля? Ну если в этом смысл какой-то и есть, допускаю, то дальше он теряется.

2) Если делать выборку вида
Код: plaintext
objCommand.CommandText = "SELECT samAccountName FROM 'LDAP://OU=User Accounts,OU=Accounts,DC=mydom,DC=mydomain,DC=com' WHERE objectCategory='user'"
то получается выборка по ВСЕМ записям одного столбца, вот результат в файл:
Export started.
Record 0 Tzit :: :: :: :: :: :: ::
Record 1 panin :: :: :: :: :: :: ::
Record 2 paydu :: :: :: :: :: :: ::
Record 3 Kok :: :: :: :: :: :: ::
Record 4 Almog :: :: :: :: :: :: ::
Record 5 aban :: :: :: :: :: :: ::
Record 6 avd :: :: :: :: :: :: ::
Record 7 anastas :: :: :: :: :: :: ::
Record 8 andrian :: :: :: :: :: :: ::
Record 9 sga :: :: :: :: :: :: ::
Record 10 belik :: :: :: :: :: :: ::
Record 11 belyak :: :: :: :: :: :: ::
Record 12 borod :: :: :: :: :: :: ::
Record 13 buka :: :: :: :: :: :: ::
Record 14 Bukar :: :: :: :: :: :: ::
Record 15 tve :: :: :: :: :: :: ::

Если делать выборку по всем нужным мне полям, вида
Код: plaintext
objCommand.CommandText = "SELECT samAccountName, displayName, sn, givenName, telephoneNumber, Mobile, Pager, Company, mail  FROM 'LDAP://OU=User Accounts,OU=Accounts,DC=mydom,DC=mydomain,DC=com' WHERE objectCategory='user'"
то получается выборка НЕ ВСЕХ записей, вот результат в файл:
Export started.
Record 0
Record 1
Record 2
Record 3
Record 4
Record 5 aban :: Абан Ольга*Aban Olga*Aban Olga :: 000 :: +7-495-000-00-00 :: 277 :: JSC :: aban@mydomain.com
Record
6 avd :: Авд Артур*Avd Artur*Avd Artur :: 000 :: +7-495-000-00-00 :: 135 :: JSC :: avd@mydomain.com
Record
7 anastas :: Анастас Ян*Anastas Yan*Anastas Yan :: 000 :: +7-495-000-00-00 :: 165 :: JSC :: anastas@mydomain.com
Record
8 andrian :: Андриан Илья*Andrian Ilya*Andrian Ilya :: 000 :: +7-495-000-00-00 :: 335 :: JSC :: andrian@mydomain.com
Record
9
Record 10
Record 11 belyak :: Беляк Алевтина*Belyak Alevtina*Belyak Alevtina :: 000 :: +7-495-000-00-00 :: 037 :: JSC :: belyak@mydomain.com
Record
12 borod :: Бород Сергей*Borod Sergey*Borod Sergey :: 000 :: +7-495-000-00-00 :: 242 :: JSC :: borod@mydomain.com
Record
13
Record 14 Bukar :: Букар Василий*Bukar Vasily*Bukar Vasily :: 000 :: +7-495-000-00-00 :: 206 :: JSC :: Bukar@mydomain.com
Record
15

Итого, не хватает записей
Record 0
Record 1
Record 2
Record 3
Record 4
Record 9
Record 10
Record 13
Record 15

В чем логика? Куда пропадают записи при выборке большего кол-ва полей, чем одно? Даже если какие-то из полей пустые, то строки то почему пропали ... Не понимаю...
Надеюсь на трезвый ум и свежий взгляд общественности.
Спасибо
...
Рейтинг: 0 / 0
Почему запрос LDAP возвращает пустые строки
    #35542389
andron123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал отдельну выборку по каждому отдельному полю, пробую проанализировать. Похоже, что действительно если встречается пустое поле, то не выводится целая строка и в запросе по многим полям оно аккумулируется и в результате почти половины записей у меня не хватает. Вот результаты запросов, может есть у кого идеи что делать с этим всем :)
Итак, делаю выборку по отдельным полям

1) По samAccountName
- все записи есть, что логично, это ведь логины

2) По displayName, sn, givenName
- не хватает записей
Record 1
Record 2

3) По telephoneNumber
- не хватает записей
Record 1
Record 2
Record 10
Record 15
Record 59
Record 84

4) По Mobile
- не хватает записей
Record 0
Record 1
Record 2
Record 3
Record 4
Record 9
Record 10
Record 24
Record 26
Record 27
Record 29
Record 31
Record 32
Record 33
Record 35
Record 36
Record 37
Record 38
Record 39
Record 43
Record 46
Record 48
Record 51
Record 52
Record 53
Record 54
Record 56
Record 61
Record 63
Record 64
Record 68
Record 72
Record 73
Record 80
Record 81
Record 82
Record 84
Record 85
Record 96
Record 100
Record 102
Record 110
Record 111
Record 112
Record 114
Record 115
Record 117
Record 118

5) По Pager
- не хватает записей
Record 0
Record 1
Record 2
Record 3
Record 4
Record 10
Record 15
Record 24
Record 26
Record 31
Record 37
Record 38
Record 48
Record 51
Record 53
Record 59
Record 62
Record 64
Record 68
Record 76
Record 78
Record 82
Record 84
Record 85
Record 114
Record 115
Record 118
Record 119

6) По Company
- не хватает записей
Record 1
Record 2
Record 38
Record 48
Record 85
Record 118

7) По mail
- не хватает записей
Record 1
Record 2
Record 3
Record 13
Record 38
Record 45
Record 48
Record 85
Record 118

8) В запросе по всем 7-ми вышеперечисленным полям не хватает строк
Record 0
Record 1
Record 2
Record 3
Record 4
Record 9
Record 10
Record 13
Record 15
Record 24
Record 26
Record 27
Record 29
Record 31
Record 32
Record 33
Record 35
Record 36
Record 37
Record 38
Record 39
Record 43
Record 45
Record 46
Record 48
Record 51
Record 52
Record 53
Record 54
Record 56
Record 59
Record 61
Record 62
Record 63
Record 64
Record 68
Record 72
Record 73
Record 76
Record 78
Record 80
Record 81
Record 82
Record 84
Record 85
Record 96
Record 100
Record 102
Record 110
Record 111
Record 112
Record 114
Record 115
Record 117
Record 118
Record 119
...
Рейтинг: 0 / 0
Почему запрос LDAP возвращает пустые строки
    #35542895
andron123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бугагага :)

Ко всему моему уважению к MS, MS must die. А может просто руки кривые, но не настолько же.
Банально. Слияние строк при записи в файл по "+" приводит к тому, что встречая значение Null на звоем пути долбанный VB всю строку превращает в Null. Ну нахрена а? :)
То есть вместо такого:
strLine = sUserID + " :: " + sName + " :: " + sPhone + " :: " + sMobile + " :: " + sPager + " :: " + sCompany + " :: " + sEmail
Надо такое:
strLine = sUserID & " :: " & sName & " :: " & sPhone & " :: " & sMobile & " :: " & sPager & " :: " & sCompany & " :: " & sEmail

Да будет всем счастье :)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему запрос LDAP возвращает пустые строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]