1
CREATE TABLE [Table1] (
[OrderNumber] integer,
[Amount] float
);
dbExpressライブラリのTSQLQuery
を使用してください。agregateフィールドの正しいデータ型を取得するには?
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Text := 'select sum(Amount) from Table1 group by OrderNumber';
SQLQuery1.Open;
SQLQuery1.First;
Memo1.Lines.Add(FloatToStr(SQLQuery1.Fields.FieldByNumber(1).AsFloat));
その結果、私が取得:メッセージと
ExceptionクラスEDatabaseError 'Float型として 'COLUMN0' フィールドにアクセスできません'。
しかし、私がString
として値を取得しようとするとエラーはありません。それは働く:
Memo1.Lines.Add(SQLQuery1.Fields.FieldByNumber(1).AsString);
どのようにデータを取得するFloat
?
この質問を見るhttps://stackoverflow.com/questions/32814875/how-in-delphi-can-i-force-an-sqlite-aggregate-field-to-be-a-numeric-field .. –
@JohnEasley私はすべての変種 '表1 ...から'( '' sum(Amount)*)を選択するようにしましたが、同じエラーが発生しました – HeathRow
Column1を使用しているとき、エラーがColumn0を参照することを奇妙に思う。両方の列が結果セットになるように試した 'SELECT OrderNumber、sum(Amount)FROM Table1 Group by OrderNumber'を持っていますか? –