Einzelnen Beitrag anzeigen

michiww

Registriert seit: 9. Mai 2007
Ort: Franken
17 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Unknown column bei TSQLQuery auf zwei Tabellen (Left joi

  Alt 11. Mai 2009, 13:41
Zitat von jbg:
Zitat:
Memo1.Lines.Add(IntToStr(SQLquery1.RecordCount)); <==== Exception mit Fehler "Unknown column rights.rightID
Darum gilt bei uns Firmenweit die Regel: "RecordCount von TSQLQuery darf nicht genutzt werden".

Denn eine TSQLQuery muss den SQL-Ausdruck parsen um das "Count(*)" an der richtigen Stelle einfügen zu können. Und dieser Parser ist komplett überfordert, wenn er auf einen JOIN trifft. Zudem wird unter bestimmten Umständen auch mal die gesamte WHERE Klausel weggelassen, was dann natürlich zu völlig falschen Daten führt.
Also besser einen eigenen "SELECT COUNT(*)" abfeuern. Damit ist man auf der sicheren Seite.
Ja, ist in der Tat so. Folgender Code liefert bei mir nun das richtige Ergebnis. Vielen Dank jbg !!!
Ich werde als Delphi 2009 Kunde dazu ein Ticket bei embarcadero aufmachen, die sollen das mal endlich fixen.

SELECT COUNT(*) FROM rights, allocrights WHERE allocrights.rightID=rights.rightID AND allocrights.userID=5910 And rights.sysID=23;
Delphi-Quellcode:
SQLquery1.Open;
Memo1.Lines.Add(IntToStr(SQLquery1.FieldByName('count(*)').AsInteger));
SQLquery1.Close;
[edit=mkinzler]Delphi-Tag ergänzt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat