我发现这段代码可以在德尔菲的某个地方为TADOTable创建一个calc字段.
.....
procedure TfrmMain.ABSTable1CalcFields(DataSet: TDataSet);
begin
with ABSTable1 do
FieldByName('cost').AsFloat := FieldByName('price').AsFloat *
FieldByName('quantity').AsInteger;
// add new field cost as Price * quantity !!!!
end;
end.在我的应用程序中,我在朗姆酒时间创建了一个TADOQuery,如
try
Fquery.sql.clear;
Fquery.sql.AddStrings(Amemo.lines);
Fquery.Open;
.....
finally
end;如何向从第一个代码片段派生的查询中添加更多calc字段?
发布于 2015-08-19 15:43:54
我认为您可以轻松地做到这一点的唯一方法是在IDE中创建一组持久的TFields (或者在打开数据集之前在代码中进行等效的创建)。否则,当您在dataset上调用open时,将调用BindFields的IIRC将创建一组动态TFields (除非数据集已经有一组TFields ),该动态TFields将在数据集打开时持续,但不包含任何计算字段。
当BindFields被调用时,添加已经太晚了,所以您必须事先设置它们,或者根本不设置它们。
https://stackoverflow.com/questions/32099931
复制相似问题