tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
4165
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dobPh dobPh ist offline Mitglied
    Registriert seit
    Oct 2006
    Beiträge
    20
    Hallo,

    ich habe ein kleines Problem.
    Und zwar mache per vb.net eine ldap abfrage auf ein Active Directory. Das funktioniert auch wunderbar nur habe ich jetzt festgestellt, dass nur die ersten 1000 Datensätze zurückkommen.
    Ich habe schon versucht es mit .maxRecords zu Regeln aber leider klappt das nicht wirklich.

    nachfolgend ein kleiner Teil meiner Abfrage:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
     
    ' Abfrage zusammen setzen
             strQuery = strBase & ";" & strFilter & ";" & strAttr & ";" & strDepth
             Debug.Print(strQuery)
     
    'Verbindung öffnen
             conn = CreateObject("Adodb.connection")
             conn.Open("Data Source=Active Directory Provider;Provider=ADsDSOObject")
     
    'Query ausführen
             'rs.MaxRecords = 10000 <--- funktioniert leider nicht
             rs = CreateObject("ADODB.Recordset")
             rs = conn.Execute(strQuery)
             anzahl = rs.RecordCount - 1
             ProgressBar1.Maximum = anzahl

    So weit ich bei msdn gelesen habe funktioniert das setzen von maxRecords nur auf Datenbankabfragen. Kann das sein? Gibt es noch eine andere Möglichkeit, wie ich wirklich alle Datensätzen bekommen kann?

    Vielen Dank im Voraus
    Philipp
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Post mal die genaue Abfrage, also den QueryString, der auch an das AD übergeben wird.
     

  3. #3
    dobPh dobPh ist offline Mitglied
    Registriert seit
    Oct 2006
    Beiträge
    20
    Hallo Norbert,

    ich habe den Code leider nicht hier (bin gerade auf Arbeit), aber das ist das was ich noch im Kopf habe. Es wird eine Suche nach Gruppen in der Domaine gemacht. Die Domaine hat aber weit über 1000 Gruppen, das heißt wenn in die Textbox nichts eingetragen wird sollten theoretisch alle Gruppen zurückkommen. Es kommen aber wie gesagt nur die ersten 1000 zurück.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    'Pfad der gegenwärtigen Domäne einholen
      Set Root = GetObject("LDAP://rootDSE")
      strDomain = Root.Get("defaultNamingContext")
      Set Domain = GetObject("LDAP://" & strDomain)
        
      'ou setzen
      OU = "" 'wird nur ab und zu gebraucht
      
      'ou einbinden
      strDomain = OU & strDomain
      Set Domain = GetObject("LDAP://" & strDomain)
      
      ' LDAP Base DN setzen
      strBase = "<" & Domain.ADsPath & ">"
        
      'Anfangsbuchstabe der Gruppe um Ergebnissmenge zu verkleinern
      aB = TextBox1.Value
      ' Filter auf die Kategorie Gruppen setzen
      strFilter = "(&(objectClass=group)(name=" & aB + "*))"
      
      ' Attribut setzen
      strAttr = "name"
     
      ' Suchtiefe setzen
      strDepth = "subTree"
     
    ' Abfrage zusammen setzen
             strQuery = strBase & ";" & strFilter & ";" & strAttr & ";" & strDepth
             Debug.Print(strQuery)
     
    'Verbindung öffnen
             conn = CreateObject("Adodb.connection")
             conn.Open("Data Source=Active Directory Provider;Provider=ADsDSOObject")
     
    'Query ausführen
             'rs.MaxRecords = 10000 <--- funktioniert leider nicht
             rs = CreateObject("ADODB.Recordset")
             rs = conn.Execute(strQuery)
             anzahl = rs.RecordCount - 1
             ProgressBar1.Maximum = anzahl

    Vielen Dank für deine Mühen,
    Philipp
    Geändert von dobPh (31.10.06 um 14:43 Uhr)
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 22.02.08, 13:31
  2. LDAP Abfrage korrekt auslesen
    Von NeMeSiS1987 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 12.02.08, 14:04
  3. LDAP Abfrage in Word
    Von mrno im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 20.02.07, 16:23
  4. INNER JOIN bringt nicht richtige Datensätze
    Von juergp im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 20.04.05, 15:04
  5. ASP: AD Abfrage über LDAP
    Von MrBarcode im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 19.08.04, 14:11