Einzelnen Beitrag anzeigen

Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: Active Directory - Abfrage

  Alt 19. Apr 2012, 05:54
Tut mir Leid, dass ich gestern nicht mehr antwortete. Hatte dann dreiviertel vier Feierabend und hatte zu Hause selber einiges zutun.

Wir haben das jetzt soweit gepackt, dass zwar immer noch eine Zugriffsverletzung kommt, wenn ich aber auf "Fortfahren" gehe, zeigt der mir im Memo einiges an Daten an, was danach auch aussieht, was ich haben möchte.
Das Problem liegt da, wie Uwe schon vermutete, dass die AD mit dem "Top 10(*)", geschweige denn überhaupt dem Sternchen zurecht kommt. Man muss scheibar explizit angeben, was für Spalten man haben möchte. Darauf muss erstmal einer kommen.
Ohne WHERE-Klausel habe ich es jetzt noch nicht versucht, da ich mir nicht das Memo sprengen möchte.

Der Quelltext sieht jetzt wie folgt aus:

Delphi-Quellcode:
procedure TForm1.btn2Click(Sender: TObject);
var LastErrorIndex, NativeError, NumberError, i: Integer;
    SourceError, DescriptionError, SQLStateError: string;
begin
  try
    DataModule2.con1.Close;
    DataModule2.con1.Open;

    with DataModule2.qry1 do
      begin
        Close;
        SQL.Text:='SELECT displayName FROM ''LDAP://DC=****,DC=lan'' WHERE objectClass=''user'' AND objectCategory=''Person''';
        Open; //<Hier liegt scheinbar immer noch ein Problem.
        First;
      end;

    mmo1.Lines.Clear;

    while not DataModule2.qry1.Eof do
      begin
        mmo1.Lines.Add(DataModule2.qry1.FieldByName('displayName').AsString);
        DataModule2.qry1.Next;
      end;
  except
    for I := 0 to DataModule2.con1.Errors.Count - 1 do
      begin
        LastErrorIndex:=i;
        SourceError:=DataModule2.con1.Errors.Item[LastErrorIndex].Source;
        NumberError:=DataModule2.con1.Errors.Item[LastErrorIndex].Number;
        DescriptionError:=DataModule2.con1.Errors.Item[LastErrorIndex].Description;
        SQLStateError:=DataModule2.con1.Errors.Item[LastErrorIndex].SQLState;
        NativeError:=DataModule2.con1.Errors.Item[LastErrorIndex].NativeError;
        Showmessage('SourceError: '+ SourceError+#10#13+
                    'NumberError: '+IntToStr(NumberError)+#10#13+
                    'DescriptionError: '+DescriptionError+#10#13+
                    'SQLStateError: '+SQLStateError+#10#13+
                    'NativeError: '+IntToStr(NativeError));
      end;
  end;
end;
Wir hatten diesen Code gefunden, um Fehler abgezufangen und ggf. etwas genauer zu erfahren, wo der Fehler ist. Das hat soweit auch ganz gut geholfen. Aber bei der Zugriffsverletzung handelt sich ja um ein delphiseitiges Problem und weniger bei der AD, oder?
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen

Geändert von Maya (19. Apr 2012 um 06:00 Uhr) Grund: Ergänzungen
  Mit Zitat antworten Zitat