![]() |
Bei CommandText Zuweisung Exception
Hallo,
ich verwende Delphi 7, bei Zuweisung "ADOSet.CommandText := HlpStr" kommt Access Violation. Bei Button Klick soll erstmal nur ein Memo gefüllt werden (bin noch am Probieren). Hier mal der Code:
Delphi-Quellcode:
Lasse ich das Programme weiterlaufen, so wird das Memo
procedure TFirstForm.Button2Click(Sender: TObject);
Var ADOConn: TADOConnection; ADOSet: TADODataSet; Loop : Integer; HlpStr : WideString; begin ADOConn := TADOConnection.Create(nil); ADOSet := TADODataSet.Create(nil); ADOConn.Provider := 'ADsDSOObject'; ADOConn.ConnectionString := 'Provider=ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Data Source=NIS;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648'; ADOConn.LoginPrompt := false; ADOSet.Connection := ADOConn; HlpStr := 'SELECT displayName,name,ADsPath,DistinguishedName,Location FROM '; HlpStr := Concat(HlpStr,QuotedStr('LDAP://meyer_1')); HlpStr := Concat(HlpStr,'WHERE objectClass = ',QuotedStr('user'),'and objectCategory = '); HlpStr := Concat(HlpStr,QuotedStr('Person')); ADOSet.CommandText := HlpStr; // Exception !!!! ADOSet.Open; ADOSet.First; Memo1.Clear; for Loop := 0 to ADOSet.RecordCount -1 do begin Memo1.Lines.Add(ADOSet.Fields[1].AsString); ADOSet.Next; end; end; entsprechend gefüllt. Danke. |
AW: Bei CommandText Zuweisung Exception
wenn Du
Delphi-Quellcode:
erst nach dem Zuweisen des Commandtextes setzt ist der Fehler weg.
ADOSet.Connection := ADOConn;
|
AW: Bei CommandText Zuweisung Exception
Hallo,
nachdem Du Connection erzeugt hast, musst Du auch noch einen Verbindung zu Ihr herstellen, bevor Du die Connection dem Dataset zuweist:
Delphi-Quellcode:
Beim Zusammenbau deines SQL-Statements würde ich noch Parameter benutzen:
ADOConn := TADOConnection.Create(nil);
... ... ADOConn.LoginPrompt := false; ADOConn.Connected:=True; // oder ADOConn.Open; ADOSet.Connection := ADOConn;
Delphi-Quellcode:
HlpStr:='SELECT displayName,name,ADsPath,DistinguishedName,Location FROM ';
HlpStr:=Concat(HlpStr,QuotedStr('LDAP://meyer_1')); HlpStr:=HlpStr+'WHERE objectClass=:Class and objectCategory=:Category'; ADOSet.Parameters.ParamByName('Class').Value:='user'; ADOSet.Parameters.ParamByName('Category').Value:='person'; ADOSet.Open; // ADOSet.First; -> diese Zeile kannst Du Dir sparen, weoil der Datensatzzeiger immer auf dem 1. Eintrag steht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz