Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Active Directory mit ADO Exception (https://www.delphipraxis.net/180124-active-directory-mit-ado-exception.html)

af99 24. Apr 2014 14:00

Active Directory mit ADO Exception
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

ich verzweifle bald. Seit Stunden ochse ich hier rum

Hier mein Programm
Delphi-Quellcode:
unit main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.StdCtrls,
  Vcl.Grids, Vcl.DBGrids;

type
  TForm5 = class(TForm)
    con_AD: TADOConnection;
    Button1: TButton;
    DBGrid1: TDBGrid;
    Button2: TButton;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    ADOQuery2: TADOQuery;
    DataSource2: TDataSource;
    procedure Button1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);
begin
  con_AD.Close;
  Con_AD.ConnectionString := 'Provider=ADsDSOObject;User ID=XXXXXX;Password=XXXXX;Encrypt Password=True;Mode=Read'; //;Bind Flags=0;ADSI Flag=-2147483648';
  con_AD.LoginPrompt := False;
  con_AD.Open;


{
  ADOConnection1.ConnectionString := 'Provider=sqloledb;' +
                                       'Data Source=XXXX;'+
                                       'Initial Catalog=XXXXXX;'+
                                       'User Id=XXXX;' +
                                       'Password=XXXXX';
  ADOConnection1.LoginPrompt := False;
  ADOConnection1.Open;
 }

end;

procedure TForm5.Button2Click(Sender: TObject);
var
  sql_str : string;
  domain : string;
begin
  SQL_str := 'select AdsPath, CN, SN from ' + quotedstr('LDAP://DC=XXXXX,DC=XX') + ' where objectclass=' + quotedstr('user') + ' ORDER by sn';

  //ShowMessage(sql_str);
  ADOQuery1.Active := false;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add(sql_str);

  try
    ADOQuery1.Active := true;
  except
    on e : Exception Do showmessage(e.Message);
  end;


{  SQL_str := 'select * from dateien';

  ADOQuery2.Active := false;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add(sql_str);

  try
    ADOQuery2.Active := true;
  except
    on e : Exception Do showmessage(e.Message);
  end;
 }

end;

procedure TForm5.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  ADOQuery1.Active := false;
  con_AD.Close;
end;

end.
Wie Ihr seht habe ich eine Connection auf das AD gemacht und zum Testen eine auf einen SQL Server.

Wenn ich das Programm so laufen lasse bekomme ich bei

Delphi-Quellcode:
ADOQuery1.SQL.Add(sql_str);
eine Exception (siehe Anhang).

Was ist falsch???? Ich setzte doch nur einen Text also das Statement in die Query. Ausführen tue ich sie doch erst später?!?!?!?!

Wenn ich die 2. Connection und die 2. Query (also die auf den SQL Server) nehme ist alles OK.

af99 24. Apr 2014 14:44

AW: Active Directory mit ADO Exception
 
ich habe dann in einem Anderen Thread gefunden das man paramcheck auf false stellen soll (warum auch immer). Danach ist die Exception weg.

Nun bekomme ich aber einen Fehler wenn ich mehr als 999 Datensätze abfrage (also mit repeat until über die gesamte Datenmenge laufe. Irgendwo meine ich schon mal gelesen zu haben das man im AD nur 1000 Datensätze abfragen kann. War das so????

Steku 24. Apr 2014 14:55

AW: Active Directory mit ADO Exception
 
Hi,

schau' mal hier, hat mir auch schon ein paar mal geholfen...
http://www.selfadsi.de/search.htm#Forest
Was du suchst nennt sich glaube ich Paged Result...

Gruß
Steku

af99 24. Apr 2014 15:02

AW: Active Directory mit ADO Exception
 
oh, ja gut. ist begrenzt auf 1000 DS.

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz