Freigeben über


IADs::SetInfo-Methode (iads.h)

Die IADs::SetInfo-Methode speichert die zwischengespeicherten Eigenschaftswerte des ADSI-Objekts im zugrunde liegenden Verzeichnisspeicher.

Syntax

HRESULT SetInfo();

Rückgabewert

Diese Methode unterstützt die Standardrückgabewerte, einschließlich S_OK für einen erfolgreichen Vorgang. Weitere Informationen finden Sie unter ADSI-Fehlercodes.

Hinweise

Es ist wichtig, die Unterschiede zwischen den Methoden IADs::P ut und IADs::SetInfo hervorzuheben. Ersterer legt werte einer bestimmten Eigenschaft im Eigenschaftencache fest (oder ändert sie), während letztere die Änderungen aus dem Eigenschaftencache an den zugrunde liegenden Verzeichnisspeicher weitergibt. Daher gehen alle von IADs::P ut vorgenommenen Eigenschaftenwertänderungen verloren, wenn IADs::GetInfo (oder IADs::GetInfoEx) aufgerufen wird, bevor IADs::SetInfo aufgerufen wird.

Da IADs::SetInfo Daten über Netzwerke sendet, minimieren Sie die Verwendung dieser Methode. Dadurch wird die Anzahl von Fahrten, die ein Client an den Server durchführt, reduziert. Beispielsweise sollten Sie alle oder die meisten Änderungen an den Eigenschaften aus dem Cache in den persistenten Speicher in einem Batch committen.

Diese Richtlinie bezieht sich nur auf die Beziehung von IADs::SetInfo zur IADs::P ut-Methode , die sich von der Beziehung zur IADs::P utEx-Methode unterscheidet.

Das folgende Codebeispiel veranschaulicht die empfohlene Beziehung zwischen IADs::P ut und IADs::SetInfo.

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

Das folgende Codebeispiel veranschaulicht, was zwischen IADs::P ut und IADs::SetInfo nicht empfohlen wird.

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

Bei Verwendung mit IADs::P utEx übergibt IADs::SetInfo die betriebsbezogenen Anforderungen, die durch Steuercodes wie ADS_PROPERTY_UPDATE oder ADS_PROPERTY_CLEAR angegeben werden, an den zugrunde liegenden Verzeichnisspeicher.

Beispiele

Im folgenden Visual Basic-Codebeispiel wird die IADs::SetInfo-Methode verwendet, um den Eigenschaftswert eines Benutzers im zugrunde liegenden Verzeichnis zu speichern.

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

Im folgenden C++-Codebeispiel werden Eigenschaftswerte im Eigenschaftencache aktualisiert und die Änderung mithilfe von IADs::SetInfo an den Verzeichnisspeicher committet. Aus Gründen der Kürze wird die Fehlerüberprüfung weggelassen.

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();

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

Iads

IADs::GetInfo

IADs::GetInfoEx

IADs::P ut

IADs::P utEx