ADOConnection zu Active Directory



  • Hi folks

    Ich verbinde mittels AdoConnection mit dem ActiveDirectory

    mein Problem ist nun das die Select befehle scheinbar nicht funktionieren.

    Verbinden

    ADOConnection1->Connected = false; 
    ADOConnection1->ConnectionString = "Provider=ADsDSOObject;Encrypt Password=False;Data Source='Ldap://dc=stadhamm';Mode=Read;Bind Flags=0;ADSI Flag=-2147483648"; 
    ADOConnection1->Connected = true;
    

    Select

    MyQuery->Close(); 
    MyQuery->Connection = ADOConnection1; 
    MyQuery->SQL->Clear(); 
    MyQuery->SQL->Add("SELECT *"); 
    MyQuery->SQL->Add("FROM all"); 
    MyQuery->Open() ;
    

    MyQuery = AdoQuery

    Bei dem SQL Befehl Select und folgende sagt er mir

    Der Befehl enthält mindestens ein fehler.

    ich hab mich schon in einigen foren umgesehen und auch in sachen ad "etwas" gelesen.

    Ware für jese hilfe dankbar.

    Greez
    Sir Drinkalot



  • Hallo

    solltest du statt "FROM all" nicht lieber "FROM <TableName>" nehmen? Sonst weiß der Server ja gar nicht, was für Datensätze er dir schicken soll.
    Oder ist "all" ein Name einer Tabelle?

    bis bald
    akari



  • Meine absicht war ja erstmal zu versuchen, egal was von dem AD zu bekommen.

    Ich hab dann einfach mal den Select befehl so geändert

    yQuery->SQL->Add("SELECT givenname from 'LDAP://DC=stadthamm.loc'");
    

    Dann sagt er die Tabelle würde es nicht geben.

    das scheint dann aber schn wieder nichts mit borland zu tun zu haben oder???



  • Hallo

    SirDrinkalot schrieb:

    Meine absicht war ja erstmal zu versuchen, egal was von dem AD zu bekommen.

    das geht nicht. du mußt immer präziße angeben, was du willst. Wenn du alle Tabellen einer Datenbank haben willst, mußt du für jede eine Abfrage machen

    Ich hab dann einfach mal den Select befehl so geändert
    [cs]yQuery->SQL->Add("SELECT givenname from 'LDAP://DC=stadthamm.loc'"); [/cs]
    Dann sagt er die Tabelle würde es nicht geben.
    

    'LDAP://DC=stadthamm.loc'' ist doch kein Tabellenname! der Name muß genau so sein, wie er in der Datenbank angelegt wurde. Also kein Dateiname, sondern quasi der Alias dafür. Schau dir doch einfach mal die Borlandbeispiele unter <BCB-Path>\Examples\BDTasks an, da siehst du was gemeint ist.

    das scheint dann aber schn wieder nichts mit borland zu tun zu haben oder???

    Nein. Du scheiterst an der SQL-Syntax.

    bis bald
    akari



  • Das ist es ja eben.

    Ich habe nochmal einen Kollegen gefragt,
    der meinte es müsste nur anders geschrieben werden.

    und zwar so

    MyQuery->SQL->Add("SELECT givenName from 'LDAP://DC=stadthamm,DC=loc'");
    
    ADOConnection1->ConnectionString = "Provider=ADsDSOObject;Encrypt
    Password=False;Integrated Security=SSPI;Data Source=LDAP;Mode=Read;Bind 
    Flags=0;ADSI Flag=-2147483648"
    

    Oder?! wie könnte eine AD Datenbank zu nennen sein.

    User???

    sorry wenn ich mich ein bisschen doof stelle,
    ich würds nicht tun wenn ichs könnte

    Greez



  • Hallo

    sorry die Syntax ist mir zu hoch.
    Bei mir (MySQL) reichen einfache Tabellennamen und Feldnamen.
    schau dich mal in SQL-Foren um.

    bis bald
    akari



  • Ich denke, du solltest dir erstmal in einen ADO- bzw. MS-spezifischen Forum o.ä. die Details für so einen Zugriff besorgen, insbesondere eben die Syntax. Wenn du dann ein funktionierendes Beispiel hast (z.B. in VB) dann findest du hier sicher Leute, die versuchen, dir bei der Umsetzung zu helfen.


Anmelden zum Antworten