我想在ADOQUERY查询结果中增加一个字段计算利息:
var
  fld: TField;
begin
with AdoQuery1 do
begin
  fld := TField.Create(self);
  fld.FieldName := '应付利息';
  Fields.Add(fld);
  First;
  While not eof do
  begin
    FieldByName('应付利息').Value := CalcInterest(
         FieldByName('日期').AsDateTime,Date(),
         FieldByName('金额').AsFloat,
         FieldByName('月利率').AsFloat);
    Next;
  end;
……
end;
可是最后赋值时提示错误:“cannot access field '应付利息' as type Variant”
是哪里出的问题呢?

解决方案 »

  1.   

    在dbgrid连接的数据源中添加计算字段即可,双击数据源add new field,然后在 oncalcfields事件里写。
    去看看帮助吧!很简单的
      

  2.   

    FieldByName('应付利息').Value := CalcInterest(这里有问题
      

  3.   

    我用的是ACCESS数据库,有设置密码。在设计时无法连接数据库(测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。),不知道是为什么。所以IDWB说的"在dbgrid连接的数据源中添加计算字段即可,双击数据源add new field,然后在 oncalcfields事件里写。"也无法完成。
    Rubi:
    FieldByName('应付利息').Value := CalcInterest(
    这里有问题
    能说一下是什么问题吗?
    谢谢各位!
      

  4.   

    fld := TField.Create(self);改为
    fld := TFloatField.Create(self);
    看看怎么样!
    IDWB的方法更好