Metodo IADs::SetInfo (iads.h)
Il metodo IADs::SetInfo salva i valori delle proprietà memorizzati nella cache dell'oggetto ADSI nell'archivio directory sottostante.
Sintassi
HRESULT SetInfo();
Valore restituito
Questo metodo supporta i valori restituiti standard, inclusi S_OK per un'operazione riuscita. Per altre informazioni, vedere Codici di errore ADSI.
Commenti
È importante sottolineare le differenze tra i metodi IADs::P ut e IADs::SetInfo. I valori precedenti (o modifica) di una determinata proprietà nella cache delle proprietà, mentre quest'ultima propaga le modifiche dalla cache delle proprietà nell'archivio directory sottostante. Pertanto, qualsiasi modifica del valore della proprietà apportata da IADs::P ut verrà persa se iADs: :GetInfo (o IADs::GetInfoEx) viene richiamato prima che venga chiamato IADs::SetInfo .
Poiché IADs::SetInfo invia dati tra reti, ridurre al minimo l'utilizzo di questo metodo. Ciò riduce il numero di viaggi che un client esegue nel server. Ad esempio, è necessario eseguire il commit di tutti o la maggior parte delle modifiche apportate alle proprietà dalla cache all'archivio permanente in un batch.
Questa linea guida riguarda solo la relazione di IADs::SetInfo con il metodo IADs::P ut , che differisce dalla relazione con il metodo IADs::P utEx .
Nell'esempio di codice seguente viene illustrata la relazione consigliata tra IADs::P ut e IADs::SetInfo.
Dim obj as IADs
obj.Put(prop1,val1)
obj.Put(prop2.val2)
obj.Put(prop3.val3)
obj.SetInfo
L'esempio di codice seguente illustra cosa non è consigliato tra IADs::P ut e IADs::SetInfo.
obj.Put(prop1,val1)
obj.SetInfo
obj.Put(prop2.val2)
obj.SetInfo
obj.Put(prop3.val3)
obj.SetInfo
Se usato con IADs::P utEx, IADs::SetInfo passa le richieste operative specificate dai codici di controllo, ad esempio ADS_PROPERTY_UPDATE o ADS_PROPERTY_CLEAR, all'archivio directory sottostante.
Esempio
Nell'esempio di codice Visual Basic seguente viene usato il metodo IADs::SetInfo per salvare il valore della proprietà di un utente nella directory sottostante.
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
Nell'esempio di codice C++ seguente vengono aggiornati i valori delle proprietà nella cache delle proprietà e viene eseguito il commit della modifica nell'archivio directory usando IADs::SetInfo. Per brevità, il controllo degli errori viene omesso.
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();
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | iads.h |
DLL | Activeds.dll |