iDirectorySearch::GetNextRow 方法 (iads.h)

GetNextRow方法會取得搜尋結果的下一個資料列。 如果尚未呼叫 IDirectorySearch::GetFirstRowGetNextRow 會從第一個資料列開始發出新的搜尋。 否則,這個方法會前進到下一個資料列。

語法

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
標頭 iads.h
Dll Activeds.dll;Adsldp.dll;Adsldpc.dll

另請參閱

ADSI 錯誤碼

ADsGetLastError

IDirectorySearch

IDirectorySearch::ExecuteSearch

IDirectorySearch::GetFirstRow