Что означает код HRESULT 20499 (S_ADS_NOMORE_COLUMNS)?

 
Предыдущий Следующий
S_ADS_NOMORE_ROWS STG_S_CONVERTED

S_ADS_NOMORE_COLUMNS

S_ADS_NOMORE_COLUMNS завершает перечисление столбцов текущей строки результата поиска. Результаты поиска ADSI организованы по строкам, а каждая строка может предоставлять набор возвращённых атрибутов через API столбцов; конец одной строки не означает завершение всего поиска.

Разделяйте состояния итерации строк и столбцов

  • При перечислении столбцов сбрасывайте состояние их обработки после перехода к новой строке.
  • Если приложение запросило явный набор атрибутов, сравнивайте возвращённые столбцы с этим запросом, не предполагая наличия значения каждого атрибута у каждого объекта.
  • Освобождайте каждый ADS_SEARCH_COLUMN, полученный через GetColumn, вызовом FreeColumn до продолжения.

Распространённая ошибка — использовать одно условие завершения для обоих циклов и случайно остановиться после первой строки. Microsoft описывает отдельные контракты итерации строк и получения столбцов: строки продвигаются через GetFirstRow/GetNextRow, а данные столбца представлены ADS_SEARCH_COLUMN. При диагностике отсутствующих данных записывайте идентификатор текущей строки и имя столбца; отсутствие значения столбца отличается от исчерпания столбцов, доступных для строки.

Перечисление результатов IDirectorySearch · Общие состояния ADSI


Нужно найти другой код? Найти другой код состояния или ошибки.