Zitat von
michiww:
Ich werde als Delphi 2009 Kunde dazu ein Ticket bei embarcadero aufmachen, die sollen das mal endlich fixen.
Es ist kein Bug, sondern dein Fehler!
SELECT COUNT(*) AS RecordAnzahl 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('RecordAnzahl').AsInteger));
SQLquery1.Close;
Man darf nicht einfach SELECT COUNT(*) FROM irgendwas schreiben und dann darauf vertrauen, dass das Feld "COUNT(*)" heisst.
Der Feldname ist potentiell völlig undefiniert.
Jedes
DBMS handhabt das etwas anderst.
Man darf hier nicht auf ein bestimmtes Namensschema vertrauen.
Das gilt natürlich auch für MIN(), MAX(), ARG(), SUM() und alle anderen
SQL-Funktionen.
Entweder man wendet den AS-Operator wie oben im Beispiel an oder man fragt so ab:
Memo1.Lines.Add(IntToStr(SQLquery1.Fields[0].AsInteger));