Das verstehe ich nicht, der Text wird doch hier
Delphi-Quellcode:
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;
übergeben also was machst Du da?
Wenn ich die
SQL-Abfrage direkt in die
Query schon zur Designzeit eingebe und im Quelltext die Zuweisung auskommentiere, erscheint die Zugriffsverletzung nicht. Das meinte ich damit, habe mich vielleicht unglücklich ausgedrückt. Ohne "WITH" habe ich es auch schon ausprobiert, da ich auch schon überlegte, ob das nicht ggf. eine Sache sein könnte, die
ADO nicht so mag.
Ergebnis war aber das gleiche.
Ich habe beim etwas genaueren googeln den Beitrag hier gefunden:
http://www.delphipraxis.net/84463-ad...erletzung.html und sind jetzt am Überlegen, ob wir nicht gleich das auch so machen, dass wir die
Query dynamisch erstellen.
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var ConString:
String;
LastErrorIndex, NativeError, NumberError, i: Integer;
SourceError, DescriptionError, SQLStateError:
string;
begin
ConString:='
Provider=ADsDSOObject;Encrypt Password=False;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648';
try
qry2:=TADOQuery.Create(
nil);
qry2.SQL.Text:='
SELECT displayName '+
'
FROM ''
LDAP://DC=****,DC=lan''
'+
'
WHERE objectClass=''
user''
'+
'
AND objectCategory=''
Person''
';
qry2.Active:=False;
qry2.ConnectionString:=ConString;
qry2.Active:=True;
qry2.First;
mmo1.Lines.Clear;
while not qry2.Eof
do
begin
mmo1.Lines.Add(qry2.FieldByName('
displayName').AsString);
qry2.Next;
end;
except
for I := 0
to qry2.Connection.Errors.Count - 1
do
begin
LastErrorIndex:=i;
SourceError:=qry2.Connection.Errors.Item[LastErrorIndex].Source;
NumberError:=qry2.Connection.Errors.Item[LastErrorIndex].Number;
DescriptionError:=qry2.Connection.Errors.Item[LastErrorIndex].Description;
SQLStateError:=qry2.Connection.Errors.Item[LastErrorIndex].SQLState;
NativeError:=qry2.Connection.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;
qry2.Free;
end;
Ich habe auch versucht, bei der
Query, die ich zur Designzeit erstelle, direkt den ConnectionString einzugeben, aber hat keine positiven Ergebnisse.
Wenn noch jmd. einen Lösungsansatz hat, wäre ich dem sehr dankbar.
Vielleicht hakts am Doppelpunkt?
Mal ParamCheck abschalten=?
Welcher Doppelpunkt?