如何在运行期,动态生成一个计算字段? ( 积分: 20 )

  • 主题发起人 主题发起人 zjwyyh
  • 开始时间 开始时间
Z

zjwyyh

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何在运行期,动态为ADOQuery1查询组件生成一个计算字段,并生成OnCalcFields事件脚本?
谢谢!
 
请问如何在运行期,动态为ADOQuery1查询组件生成一个计算字段,并生成OnCalcFields事件脚本?
谢谢!
 
1.定义字段
var var Cal:Tfield;
begin
Cal:=tfield.Create(self);
Cal.Name:='Cal';
Cal.SetFieldType(ftFloat);
Cal.FieldKind :=fkCalculated;
ADOQuery1.Fields.Add(Cal);
end;
2.定义事件
procedure TForm1.CalFields(DataSet: TDataSet);
begin
if DataSet.FindField('Cal')<>nil then
begin
//do thing
end;
end;
然后
ADOQuery1.OnCalcFields:= CalFields;
 
谢谢weekboy的回答,
我的adoquery sql 语句是动态生成,事先不知道有哪些字段,所以无法静态设置计算字段(我想给显示到dbgrid中的数据集数据增加个序号列,这可以通过计算字段完成)。
当数据集得到sql语句后,我先关闭,再用上面的语句完成了增加一个计算字段“序号”。
为了使序号字段能显示,我再打开数据集,发现不成功。
我又试了,在不关闭数据集的情况下,增加计算字段,再提取数据集,还是不行。
不知有没有个可行的办法???

谢谢!
 
后退
顶部