Udostępnij za pośrednictwem


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".