一个关于计算字段的问题一个dbgrid,通过datasource连到query上,query通过tdatabase用odbc方式连到某个库的某个表上,双击query,
加上这个表的所有字段,现在想加入一个计算字段,
就新加一个字段,类型为Calculated,名为query1calc,
字段类型为integer。然后在query的OnCalcFields事件中加入
procedure TForm1.Query1CalcFields(DataSet: TDataSet);
begin
  Query1Calc.Value :=1;//(*)
end;
然后在dbgrid1中column中加入所有字段包括计算字段。
query.connected:=true后,所有记录其他字段都可以正常显示,就是各记录计算字段仍然为空???(而不是1)
我在(*)处打了断点,显示每条记录时都进入了这个断点的呀,为什么显示不出来?
朋友们,请指点一下我,应该怎么做,才能正常使用计算字段。

解决方案 »

  1.   

    重要得是你的query编辑新字段的设置看看有什么错误。
      

  2.   

    很难说清楚,如果这个字段总是1的话,可以在sql中直接写:
      select feiled1, field2, 1 queryCalc from table
      

  3.   

    那就这样写:比如这个字段叫 fldc ,等于feiled1+field2select feiled1, field2, feiled1+field2 queryCalc from table
      

  4.   

    procedure TForm1.Query1CalcFields(DataSet: TDataSet);
    begin
      Query1['query1calc'] :=1;//(*)
    end;
      

  5.   

    procedure TForm1.Query1CalcFields(DataSet: TDataSet);
    begin
     with Query1 do
      begin
      FileldbyName('query1calc').Asinteger := ...//要相加的内容
      end;
    end;
      

  6.   

    Query1Calc.AsInteger :=1;//(*)
    Query1的AutoCalc属性为True