Udostępnij przez


Dialekt LDAP

Dialekt LDAP to format instrukcji zapytań, które używają składni filtru LDAP. Użyj instrukcji zapytania LDAP z następującymi interfejsami wyszukiwania ADSI:

  • Interfejsy ActiveX Data Object (ADO), które są interfejsami automatyzacji korzystającymi z OLE DB.
  • OLE DB , który jest zestawem interfejsów C/C++ do wykonywania zapytań dotyczących baz danych.
  • IDirectorySearch, który jest interfejsem C/C++ dla usługi Active Directory.

Ciąg dialektu LDAP składa się z czterech części oddzielonych średnikami (;).

  • Podstawowa nazwa wyróżniająca. Na przykład:

    <LDAP://DC=Fabrikam,DC=COM>
    
  • Filtry wyszukiwania LDAP. Aby uzyskać więcej informacji na temat filtrów wyszukiwania, zobacz Składnia filtru wyszukiwania.

  • Nazwa wyświetlana LDAP atrybutów do pobrania. Wiele atrybutów jest rozdzielonych przecinkami.

  • Określa zakres wyszukiwania. Prawidłowe wartości to "base", "onelevel" i "subtree". Zakres określony w ciągu zapytania LDAP zastępuje dowolny zakres wyszukiwania określony za pomocą właściwości "SearchScope" obiektu polecenia ADO.

Poniżej znajduje się przykład kodu dialektu LDAP w narzędziu ADSI, który wyszukuje wszystkie obiekty w poddrzewie.

"<LDAP://DC=Fabrikam,DC=com>;(objectClass=*);AdsPath, cn;subTree"

Nie wszystkie opcje wyszukiwania (na przykład rozmiar strony wyszukiwania) można wyrazić w dialektze LDAP, dlatego należy ustawić opcje przed rozpoczęciem rzeczywistego wykonywania zapytania.

Przykładowy kod do wykonywania zapytania LDAP

Poniższy przykład kodu pokazuje, jak używać zapytania LDAP

Dim con As New Connection, rs As New Recordset
Dim adVariant
Dim i 'Used for counter
Dim j 'Used for counter
Dim Com As New Command
Dim strDomain As String
Dim strPassword As String
 
' Open a Connection object.
con.Provider = "ADsDSOObject"
con.Properties("ADSI Flag") = 1
con.Properties("User ID") = strDomain + "\" + strUserID
con.Properties("Password") = strPassword

con.Open "Active Directory Provider"
 
' Create a command object on this connection.
Set Com.ActiveConnection = con
 
' Set the query string.
Com.CommandText = "<LDAP://MyServer/DC=MyDomain,DC=Fabrikam,DC=com>;
     (objectClass=*);ADsPath, objectclass;base"
 
' Set search preferences.
Com.Properties("Page Size") = 1000
Com.Properties("Timeout") = 30 'seconds
 
' Execute the query.
Set rs = Com.Execute
 
' Navigate the record set.
rs.MoveFirst
While Not rs.EOF
    For i = 0 To rs.Fields.Count - 1
        If rs.Fields(i).Type = adVariant And Not (IsNull(rs.Fields(i).Value)) Then
            Debug.Print rs.Fields(i).Name, " = "
            For j = LBound(rs.Fields(i).Value) To UBound(rs.Fields(i).Value)
                Debug.Print rs.Fields(i).Value(j), " # "
            Next j
        Else
            Debug.Print rs.Fields(i).Name, " = ", rs.Fields(i).Value
        End If
    Next i
    rs.MoveNext
Wend
 
rs.MoveLast
Debug.Print "No. of rows = ", rs.RecordCount

Aby uzyskać szczegółowe informacje na temat składni zapytania, zobacz składni filtru wyszukiwania.

składni filtru wyszukiwania

dialektu SQL

wyszukiwanie za pomocą interfejsu IDirectorySearch

wyszukiwanie za pomocą obiektów danych ActiveX

wyszukiwanie za pomocą OLE DB