Inzwischen habe ich in der dbclient.pas folgenden Code gefunden:
Code:
function AggValueAsVariant(Agg: TAggregate; Buffer: Pointer): Variant;
var
C: Currency;
begin
case Agg.DataType of
ftByte:
Result := Byte(Buffer^);
....
TFieldType.ftSingle:
Result := Single(Buffer^);
ftFloat:
Result := Double(Buffer^);
ftBCD, ftFMTBcd:
.....
An der Stelle wird der Code fuer ftFloat ausgefuehrt, obwohl mein Feld vom Typ TSingleField ist. Und sobald ich statt Sum als Aggregatfunktion Min oder Max wähle, wird mein Feldtyp ftSingle und die Aggregatfunktion stimmt.
Aber sonst bin ich im
VCL-Code noch nicht durchgestiegen, wann welcher Feldtyp gewählt wird.