AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADOQuery.SQL.ADD Problem... Zugriffsverletzung
Thema durchsuchen
Ansicht
Themen-Optionen

ADOQuery.SQL.ADD Problem... Zugriffsverletzung

Ein Thema von DerMike · begonnen am 17. Jan 2007 · letzter Beitrag vom 17. Jan 2007
Antwort Antwort
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#1

ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 11:27
Datenbank: LDAP, SQL • Zugriff über: ADO
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.

ADOQuery1.SQL.Add(SQL); Leider bekomme ich eine Zugriffsverletzung EAccessViolation bei diesem Vorgang.

Das hier funktioniert aber....
ADOQuery1.SQL.Clear; Wenn ich den SQL-String händisch hineinschreibe funktioniert auch alles.

Kann mir jemand erklären, was Bernhard Geyer mit Datenbank zerschießen meinte???? http://www.delphi-forum.de/viewtopic.php?p=403855

lg

Mike

//EDIT
Habe wieder etwas neues probiert. Leider dieselbe Fehlermeldung

Delphi-Quellcode:
  
  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);
Am Inhalt des SQLQuery Strings kann es nicht liegen. Egal, was ich reinschreiben möchte ich bekomme immer EAccesViolation als Fehler
----------
lg Mike
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 12:30
was ist mit der eigenschalft CommandText?
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#3

Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 12:41
Gute Frage...

Diese Eigenschaft gibt es bei TADOQuery aber nicht..
----------
lg Mike
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#4

Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 12:43
verdammt.... aber nen versuch wars wert
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 13:44
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:
  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);
oder wenn du bereits einen vollständigen String hast, diesen direkt der Eigenschaft Text zuweisen:
Delphi-Quellcode:
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
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
DerMike

Registriert seit: 4. Jan 2007
21 Beiträge
 
#6

Re: ADOQuery.SQL.ADD Problem... Zugriffsverletzung

  Alt 17. Jan 2007, 19:31
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:
  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);
Zuerst ADOQuery.SQL befüllen und DANACH erst den ConnectionString Keine Ahnung warum aber es funktioniert.

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;
----------
lg Mike
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 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