Saludos
No veo nada anormal.:confuced:
Hagamos pruebas
Mostrando los datos de cada campo con un
ShowMessage.
Código Delphi
[-]procedure TForm1.IBDataSet1CalcFields(DataSet: TDataSet);
begin
with IBdataset1 do begin
Showmessage(IntToStr(FieldByName('campo2').AsInteger));
Showmessage(IntToStr(FieldByName('campo3').AsInteger));
FieldByName('campo4').AsInteger:=FieldByName('campo2').AsInteger+FieldByName('campo3').AsInteger;
end;
Chequea a ver si contiene datos