Metoda GetEx
Niektóre atrybuty mogą przechowywać co najmniej jedną wartość. Na przykład atrybut innyTelephone obiektu użytkownika w usłudze Active Directory jest właściwością, która może mieć zero, jedną lub wiele wartości. Atrybuty, które mają wiele wartości, są nazywane "atrybutami wielowartotowymi". Jeśli identyfikatory IAD::Get metoda jest używana do pobierania atrybutu wielowartego, wyniki muszą być przetwarzane inaczej niż w przypadku, gdy atrybut ma jedną wartość. Wyniki dostarczone przez IADs::GetEx metody, jednak są przetwarzane w ten sam sposób, niezależnie od tego, czy atrybut ma jedną lub wiele wartości. W obu przypadkach metoda IADs::GetEx zwraca wartości w tablicy.
Metoda IADs::GetEx pobiera właściwości z pamięci podręcznej właściwości. Jeśli określona właściwość nie zostanie znaleziona w pamięci podręcznej, identyfikatory IADs::GetEx wykonuje niejawną IADs::GetInfo wywołanie.
Metoda IADs::GetEx zwraca tablicę wariantów niezależnie od liczby wartości zwracanych z serwera. Jest to prawda, nawet jeśli atrybut zawiera tylko jedną wartość.
Dim usr As IADs
On Error GoTo Cleanup
Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
homePhones = usr.GetEx("otherHomePhone")
For each phone in homePhones
Debug.Print phone
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set usr = Nothing
Metoda IADs::GetEx może być również używana dla atrybutów o pojedynczej wartości. Wyniki atrybutu o pojedynczej wartości są przetwarzane tak samo jak wyniki dla atrybutu wielowartościowego.
Dim usr as IADs
On Error GoTo Cleanup
Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
sds = usr.GetEx("ntSecurityDescriptor")
For each sd in sds
Set acl = sd.DiscretionaryACL
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set usr = Nothing
Jeśli dla atrybutu nie ustawiono żadnej wartości, identyfikatory IADs::GetEx zwraca błąd "Nie znaleziono właściwości w pamięci podręcznej".