다음을 통해 공유


IADs::SetInfo 메서드(iads.h)

IADs::SetInfo 메서드는 ADSI 개체의 캐시된 속성 값을 기본 디렉터리 저장소에 저장합니다.

구문

HRESULT SetInfo();

반환 값

이 메서드는 성공적인 작업에 대한 S_OK 포함하여 표준 반환 값을 지원합니다. 자세한 내용은 ADSI 오류 코드를 참조하세요.

설명

IADs::P utIADs::SetInfo 메서드 간의 차이점을 강조하는 것이 중요합니다. 속성 캐시에서 지정된 속성의 이전 값을 설정하거나 수정하는 반면, 후자는 속성 캐시의 변경 내용을 기본 디렉터리 저장소로 전파합니다. 따라서 IADs::SetInfo가 호출되기 전에 IADs::GetInfo(또는 IADs::GetInfoEx)가 호출되면 IADs::P ut에 의해 변경된 속성 값이 손실됩니다.

IADs::SetInfo는 네트워크를 통해 데이터를 보내므로 이 메서드의 사용을 최소화합니다. 이렇게 하면 클라이언트가 서버로 여행하는 횟수가 줄어듭니다. 예를 들어 캐시에서 영구 저장소로의 속성 변경 내용을 모두 또는 대부분 일괄 처리로 커밋해야 합니다.

이 지침은 IADs::SetInfo와 IADs::P ut 메서드의 관계에만 관련되며, 이는 IADs::P utEx 메서드와의 관계와 다릅니다.

다음 코드 예제에서는 IADs::P utIADs::SetInfo 간의 권장 관계를 보여 줍니다.

Dim obj as IADs
 
obj.Put(prop1,val1)
obj.Put(prop2.val2)
obj.Put(prop3.val3)
obj.SetInfo

다음 코드 예제에서는 IADs::P utIADs::SetInfo 간에 권장되지 않는 사항을 보여 줍니다.

obj.Put(prop1,val1)
obj.SetInfo
obj.Put(prop2.val2)
obj.SetInfo
obj.Put(prop3.val3)
obj.SetInfo

IADs::P utEx와 함께 사용하는 경우 IADs::SetInfo는 제어 코드(예: ADS_PROPERTY_UPDATE 또는 ADS_PROPERTY_CLEAR)에 지정된 운영 요청을 기본 디렉터리 저장소에 전달합니다.

예제

다음 Visual Basic 코드 예제에서는 IADs::SetInfo 메서드를 사용하여 사용자의 속성 값을 기본 디렉터리에 저장합니다.

Dim x as IADs
On Error GoTo Cleanup

Set x = GetObject("LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com")
'
' Update values in the cache.
'
x.Put "sn", "Smith"
x.Put "givenName", "Jeff"
x.Put "street", "1 Tanka Place"
x.Put "l", "Sammamish"
x.Put "st", "Washington"
'
' Commit changes to the directory.
x.SetInfo

Cleanup:
   If (Err.Number<>0) Then
      MsgBox("An error has occurred. " & Err.Number)
   End If
   Set x = Nothing

다음 C++ 코드 예제에서는 속성 캐시의 속성 값을 업데이트하고 IADs::SetInfo를 사용하여 디렉터리 저장소에 변경 내용을 커밋합니다. 간단히 하기 위해 오류 검사는 생략됩니다.

IADs *pAds NULL;
VARIANT var;
HRESULT hr = S_OK;
LPWSTR path=L"LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com";
hr = ADsGetObject( path, IID_IADs, (void**) pADs);

if(!(hr==S_OK)) {return hr;}

VariantInit(&var);
// Update values in the cache.
V_BSTR(&var) = SysAllocString(L"Smith");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("sn"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Jeff");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("givenName"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"1 Tanka Place");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("street"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Sammamish");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("l"), var );
VariantClear(&var);
 
V_BSTR(&var) = SysAllocString(L"Washington");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("st"), var );
VariantClear(&var);
 
// Commit changes to the directory store.
hr = pADs->SetInfo();

if(pADs)
   pADs->Release();

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 iads.h
DLL Activeds.dll

추가 정보

IAD

IADs::GetInfo

IADs::GetInfoEx

IADs::P ut

IADs::P utEx