![]() |
Datenbank: LDAP, SQL • Zugriff über: ADO
ADOQuery.SQL.ADD Problem... Zugriffsverletzung
Hallo,
ich habe jetzt schon wieder einen blöden Fehler. Ich erstelle mir meine SQL Abfrage und gebe sie aus. Somit kann ich mit Sicherheit sagen, dass die Abfrage richtig ist. Jetzt möchte ich diesen STRING SQL (SELECT * ....) in die TADOQuery Komponente schreiben.
Delphi-Quellcode:
Leider bekomme ich eine Zugriffsverletzung EAccessViolation bei diesem Vorgang.
ADOQuery1.SQL.Add(SQL);
Das hier funktioniert aber....
Delphi-Quellcode:
Wenn ich den SQL-String händisch hineinschreibe funktioniert auch alles.
ADOQuery1.SQL.Clear;
Kann mir jemand erklären, was Bernhard Geyer mit Datenbank zerschießen meinte???? ![]() lg Mike //EDIT Habe wieder etwas neues probiert. Leider dieselbe Fehlermeldung
Delphi-Quellcode:
Am Inhalt des SQLQuery Strings kann es nicht liegen. Egal, was ich reinschreiben möchte ich bekomme immer EAccesViolation als Fehler :(ADOQuery := TADOQuery.Create(nil); ADOQuery.Active := false; ADOQuery.ConnectionString := frmMain.Funktion.GetLDAPConnectionString; SQLQuery := 'SELECT cn FROM ' + frmMain.Funktion.GetLDAPTableString('LDAP','Gesellschaft',frmMain.Funktion.Domaene) + ' where objectclass=' + QuotedStr('contact') + ' and objectcategory=' + QuotedStr('user'); ADOQuery.SQL.Add(SQLQuery); |
Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung
was ist mit der eigenschalft CommandText?
|
Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung
Gute Frage...
Diese Eigenschaft gibt es bei TADOQuery aber nicht.. |
Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung
verdammt.... aber nen versuch wars wert :-)
|
Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung
Wenn du schon die Methode Add von TStrings verwendest, solltest du auch dafür sorgen, dass TStrings leer ist.
Also entweder mit der Methode Clear erst leeren:
Delphi-Quellcode:
oder wenn du bereits einen vollständigen String hast, diesen direkt der Eigenschaft Text zuweisen:
SQLQuery := 'SELECT cn FROM ' + frmMain.Funktion.GetLDAPTableString('LDAP','Gesellschaft',frmMain.Funktion.Domaene) + ' where objectclass='
+ QuotedStr('contact') + ' and objectcategory=' + QuotedStr('user'); ADOQuery.SQL.Clear; <=== hier wird TStrings geleert! ADOQuery.SQL.Add(SQLQuery);
Delphi-Quellcode:
Grüße
SQLQuery := 'SELECT cn FROM ' + frmMain.Funktion.GetLDAPTableString('LDAP','Gesellschaft',frmMain.Funktion.Domaene) + ' where objectclass='
+ QuotedStr('contact') + ' and objectcategory=' + QuotedStr('user'); ADOQuery.SQL.Text := SQLQuery; <=== hier einen String zuweisen Mikhal |
Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung
Hallo,
ich glaube ich habe ein Lösung gefunden. Trotzdem weiß ich nicht warum mein Programm zu einem Fehler geführt hat, aber egal .... Funktioniert NICHT
Delphi-Quellcode:
Zuerst ADOQuery.SQL befüllen und DANACH erst den ConnectionString :) Keine Ahnung warum aber es funktioniert.
ADOQuery := TADOQuery.Create(nil);
ADOQuery.Active := false; ADOQuery.ConnectionString := frmMain.Funktion.GetLDAPConnectionString; SQLQuery := 'SELECT cn FROM ' + frmMain.Funktion.GetLDAPTableString('LDAP','Gesellschaft',frmMain.Funktion.Domaene) + ' where objectclass=' + QuotedStr('contact') + ' and objectcategory=' + QuotedStr('user'); ADOQuery.SQL.Add(SQLQuery); FUNKTIONIERT
Delphi-Quellcode:
ADOQuery := TADOQuery.Create(nil); SQLQuery := 'SELECT cn FROM ' + frmMain.Funktion.GetLDAPTableString('LDAP','Gesellschaft',frmMain.Funktion.Domaene) + ' where objectclass=' + QuotedStr('contact') + ' and objectcategory=' + QuotedStr('user'); ADOQuery.SQL.Add(SQLQuery); ADOQuery.Active := false; ADOQuery.ConnectionString := frmMain.Funktion.GetLDAPConnectionString; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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