大家都知道双击adoquery弹出框可以在里面右键add fields等,由于我的adoquery查询的表里面字段不固定,还有我的adoquery里面有一个计算出来的字段,所以我想在程序里面进行add fields,大家那个知道?

解决方案 »

  1.   

    可以动态添加.但不建议这么做,这是不可取的
    如果要显示50个字段,要add 50次,还有每个field都要设置类型和长度
      

  2.   

    想办法把计算字段用别的方法处理,如在beforepost中处理或放在数据库中计算。而且字段不固定,对显示控件也有要求的,否则你的计算字段也没有用。
      

  3.   

    我的意思是我的工资里面有
    姓名    基本工资   绩效工资   加班费      
    .......
    但是那天也许我的工资表要改动
    姓名   基本工资    绩效工资   加班费   三金  

    我的adoquery在改动前我可以通过ADOQueryCalcFields里面对工资进行相加合计,所以我对adoquery双击add fields,然后再new fields添加一个合计,但是改动后fields要变啊, 所以我想在程序中通过程序运行的时候来add fields和new fields。
      

  4.   

    var 
        Field:TField; 
             Field:=TField.Create(self);
            Field.FieldKind:=fkCalculated;
            Field.SetFieldType(ftInteger);
            Field.FieldName:='合计';
           if   ADOQuery2.Active=false   then
            ADOQuery2.Active:=true;
            ADOQuery2.Fields.Add(Field);
    我通过这种方法可以添加一个列,但是这个列没有名字,退出时也报错。
      

  5.   


            Field:=TField.Create(ADOQuery3);
            Field.FieldKind:=fkCalculated;
            Field.SetFieldType(ftInteger);
            Field.FieldName:='WM';
            Field.Name:='WM';
            Field.DisplayLabel := '我们';
            ADOQuery3.Close;
            Field.DataSet := ADOQuery3;
            ADOQuery3.Fields.Add(Field);
            ADOQuery3.Open;退出时报找不到WM,但是我数据库中有这个栏位