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 |