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 i 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 . Il primo imposta (o modifica) i valori di una determinata proprietà nella cache delle proprietà, mentre quest'ultima propaga le modifiche dalla cache delle proprietà nell'archivio directory sottostante. Pertanto, tutte le modifiche apportate da IADs::P ut andranno perse se iADs::GetInfo (o IADs::GetInfoEx) vengono richiamati prima che venga chiamato IADs::SetInfo .

Poiché IADs::SetInfo invia dati tra reti, ridurre al minimo l'utilizzo di questo metodo. In questo modo si riduce il numero di corse che un client effettua al server. Ad esempio, è necessario eseguire il commit di tutte o la maggior parte delle modifiche apportate alle proprietà dalla cache all'archivio permanente in un unico 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 .

L'esempio di codice seguente illustra 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 di Visual Basic seguente viene utilizzato 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

L'esempio di codice C++ seguente aggiorna i valori delle proprietà nella cache delle proprietà ed esegue 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

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione iads.h
DLL Activeds.dll

Vedi anche

ID

IADs::GetInfo

IADs::GetInfoEx

ID::P ut

IADs::P utEx