Поделиться через


Метод IDirectorySearch::GetNextRow (iads.h)

Метод GetNextRow получает следующую строку результата поиска. Если метод IDirectorySearch::GetFirstRow не был вызван, GetNextRow выполнит новый поиск, начиная с первой строки. В противном случае этот метод будет переходить к следующей строке.

Синтаксис

HRESULT GetNextRow(
  [in] ADS_SEARCH_HANDLE hSearchResult
);

Параметры

[in] hSearchResult

Содержит дескриптор поиска, полученный путем вызова IDirectorySearch::ExecuteSearch.

Возвращаемое значение

Этот метод возвращает стандартные возвращаемые значения, а также следующие:

Дополнительные сведения см. в разделе Коды ошибок ADSI.

Комментарии

Если флаг ADS_SEARCHPREF_CACHE_RESULTS не установлен, разрешена только прямая прокрутка, так как клиент может не кэшировать все результаты запроса.

Поставщик каталогов может ограничить максимальное количество строк, доступных в поиске. Например, в домене Windows максимальное число строк, которые будут предоставлены в поиске Active Directory, составляет 1000 строк. Если количество результатов поиска превышает ограничение по строкам, необходимо выполнить поиск по страницам, чтобы получить все строки в поиске. Дополнительные сведения о поиске по страницам см. в разделе Разбиение по страницам с помощью IDirectorySearch.

Примеры

hr = m_pSearch->ExecuteSearch(L"(objectCategory=contact)", pszAttr, dwCount, &hSearch);
if(SUCCEEDED(hr))
{
    while(SUCCEEDED(hr = m_pSearch->GetNextRow(hSearch)))
    {
        if(S_OK == hr)
        {
            // Get the data.
        }
        else if(S_ADS_NOMORE_ROWS == hr)
        {
            // Call ADsGetLastError to see if the search is waiting for a response.
            DWORD dwError = ERROR_SUCCESS;
            WCHAR szError[512];
            WCHAR szProvider[512];

            ADsGetLastError(&dwError, szError, 512, szProvider, 512);
            if(ERROR_MORE_DATA != dwError)
            {
                break;
            }
        }
        else
        {
            break;
        }
    }
    
    m_pSearch->CloseSearchHandle(hSearch);
}

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h
DLL Activeds.dll; Adsldp.dll; Adsldpc.dll

См. также раздел

Коды ошибок ADSI

ADsGetLastError

IDirectorySearch

IDirectorySearch::ExecuteSearch

IDirectorySearch::GetFirstRow