Dialek LDAP

Dialek LDAP adalah format untuk pernyataan kueri yang menggunakan sintaks filter pencarian LDAP. Gunakan pernyataan kueri LDAP dengan antarmuka pencarian ADSI berikut:

  • Antarmuka ActiveX Data Object (ADO), yang merupakan antarmuka Automation yang menggunakan OLE DB.
  • OLE DB, yang merupakan sekumpulan antarmuka C/C++ untuk mengkueri database.
  • IDirectorySearch, yang merupakan antarmuka C/C++ untuk Direktori Aktif.

String dialek LDAP terdiri dari empat bagian yang dipisahkan oleh titik koma (;).

  • Nama khusus dasar. Misalnya:

    <LDAP://DC=Fabrikam,DC=COM>
    
  • Filter pencarian LDAP. Untuk informasi selengkapnya tentang filter pencarian, lihat Sintaks Filter Pencarian.

  • Nama tampilan LDAP dari atribut yang akan diambil. Beberapa atribut dipisahkan oleh koma.

  • Menentukan cakupan pencarian. Nilai yang valid adalah "base", "onelevel", dan "subtree". Cakupan yang ditentukan dalam string kueri LDAP mengambil alih cakupan pencarian apa pun yang ditentukan dengan properti "SearchScope" dari objek Perintah ADO.

Berikut ini adalah contoh kode dialek LDAP di ADSI yang mencari semua objek dalam subtree.

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

Tidak semua opsi pencarian (ukuran halaman pencarian, misalnya) dapat diekspresikan dalam dialek LDAP, jadi Anda harus mengatur opsi sebelum eksekusi kueri aktual dimulai.

Contoh Kode untuk Melakukan Kueri LDAP

Contoh kode berikut menunjukkan cara menggunakan kueri 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

Untuk detail tentang sintaks kueri, lihat Sintaks Filter Pencarian.

Sintaks Filter Pencarian

Dialek SQL

Mencari dengan Antarmuka IDirectorySearch

Mencari dengan Objek Data ActiveX

Mencari dengan OLE DB