REVELAR

Fórum SP com FireBird..Float é gravado arredondado. O q há d erro? #322372

29/05/2006

0

Amigos tenho uma SP:
CREATE PROCEDURE SP_PATRIMONIOS_TIPO_INS (
    ID_PATRIMONIO_TIPO INTEGER,
    TIPO VARCHAR(40),
    DEPRECIACAO DECIMAL(3,1))
AS
begin
    insert into patrimonios_tipo(id_patrimonio_tipo, tipo, depreciacao)
    values (:id_patrimonio_tipo, :tipo, :depreciacao);
end


e uma função para gravar os dados no banco:
Case strOper of
  ´I´:
  begin
    with spInserir do
    begin
      Close;
      ParamByName(´id_patrimonio_tipo´).Value := dm.GetValorCodigo(´id_patrimonio_tipo´);
      ParamByName(´tipo´).Value := edtTipo.Text;
      ParamByName(´depreciacao´).Value := StrToFloat(edtDepreciacao.Text);
      Try
        ExecProc;
      Except
        on E : Exception do
        begin
          MessageBox(Handle, PChar(E), ´´, MB_ICONEXCLAMATION+MB_OK);
          Abort;
        end;
      End;
    end;
  end;
  ´A´:
  begin
    with spAlterar do
    begin
      Close;
      ParamByName(´id_patrimonio_tipo´).Value := StrToInt(edtCodigo.Text);
      ParamByName(´tipo´).Value := edtTipo.Text;
      Try
        ExecProc;
      Except
        on E : Exception do
        begin
          MessageBox(Handle, PChar(E), ´´, MB_ICONEXCLAMATION+MB_OK);
          Abort;
        end;
      End;
    end;
  end;
  end;


o problema ocorre qd digito um valor quebrado, como 4,6 , no campo depreciacao.
O certo seria gravar 4,6 e naum 5 como ele está fazendo.
Já tentei d tudo e naum consegui resolver
Utilizo o dbExpress para fazer a conexão com o banco d dados


Orlando Frade

Orlando Frade

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar