Creo que el problema es con el uso del .value y los parámetros. Value no hace una conversión automática de tipos.
Prueba lo siguiente
Código Delphi
[-]
ZSumaInventario.Close;
ZSumaInventario.SQL.Clear;
ZSumaInventario.SQL.Add('update articulos set cantidad = :inv where ref = :cod');
ZSumaInventario.ParamByName('inv').AsInteger := ZInventario.Fields[3].AsInteger + ZTemp.Fields[3].AsInteger;
ZSumaInventario.ParamByName('cod').AsString := ZTemp.Fields[1].AsString;
ZSumaInventario.ExecSQL;