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?