procedure Tw_shfw.DataSource_GHPJUpdateData(Sender: TObject);
var
  total_tmp,totalsum_tmp:integer;
begin
  totalsum_tmp:=0;
  total_tmp:=0;
  with  dm_sqlserver.ADOQuery_ghpj do
  begin
    first;
    while not eof do
    begin
      total_tmp:=FieldByName('price_ghpj').Value+FieldByName('num_ghpj').Value;
      totalsum_tmp:=totalsum_tmp+total_tmp;
///      showmessage(floattostr(total_tmp));
      next;
    end;
    w_shfw.Edit_total.Text:=floattostr(totalsum_tmp);
  end;
end;上面的有点问题
在database里price_ghpj为decimal型,num_ghpj为number型

解决方案 »

  1.   

    报这个错project eims_system.exe raised exception class EStackoverflow with message 'stack overflow'.process stopped.use step or run to continue.以下是我保存按钮的代码(按保存按钮后开始计算)procedure Tw_shfw.SpeedButton_save2Click(Sender: TObject);
    begin
      try
        dm_sqlserver.ADOConnection_sqlserver.BeginTrans;//开始事务
        with  dm_sqlserver.ADOQuery_GHPJ do
        begin
    //        post;
          UpdateBatch();
          MessageBox(Handle,pchar('配件数据保存成功!'),'信息',MB_ICONINFORMATION);
        end;
        dm_sqlserver.ADOConnection_sqlserver.CommitTrans;//提交事务
      except
        dm_sqlserver.ADOConnection_sqlserver.RollBackTrans;//出现异常,事务回滚
        MessageBox(Handle,pchar('配件数据保存失败!'),'提示',MB_ICONEXCLAMATION);
      end;
    end;
      

  2.   

    如果你的字段为null值时你有没有考虑到呢。
    将这句total_tmp:=FieldByName('price_ghpj').Value+FieldByName('num_ghpj').Value;
    改为total_tmp:=FieldByName('price_ghpj').AsFloat+FieldByName('num_ghpj').AsFloat;