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]