Fórum Erro de conversão, ao gravar decimal. #45808
03/08/2004
0
Olá
Estou usando um IBDataset para atualizar um registro na tabela. Só que está dando erro. Tenho que gravar um resultado no campo QTDPRO que é do tipo Double Precision.
Depois de usar o SelectSQL.Add, o IBDataset fica assim: update PROD set QTDPRO=-294,6 where CODPRO=2040.
Creio que o erro é justamente por causa da vírgula.
Por favor, Como posso resolver isto? :?
Produto.Close;
Produto.SelectSQL.Clear;
Produto.SelectSQL.Add(´update PROD set QTDPRO=´+FloatToStr(Total)+ ´ where CODPRO=2040´);
Produto.Prepare;
Produto.ExecSQL;
[ ]´s
Estou usando um IBDataset para atualizar um registro na tabela. Só que está dando erro. Tenho que gravar um resultado no campo QTDPRO que é do tipo Double Precision.
Depois de usar o SelectSQL.Add, o IBDataset fica assim: update PROD set QTDPRO=-294,6 where CODPRO=2040.
Creio que o erro é justamente por causa da vírgula.
Por favor, Como posso resolver isto? :?
Produto.Close;
Produto.SelectSQL.Clear;
Produto.SelectSQL.Add(´update PROD set QTDPRO=´+FloatToStr(Total)+ ´ where CODPRO=2040´);
Produto.Prepare;
Produto.ExecSQL;
[ ]´s
Ivonei
Curtir tópico
+ 0
Responder
Posts
03/08/2004
Afarias
|Creio que o erro é justamente por causa da vírgula.
Exato! O separador de decimais no IB é o ponto (.)
|Por favor, Como posso resolver isto?
Formate o número para usar ponto como separador de decimais! Uma forma de fazer isso é mudando a variável DecimalSeparator::
DecimalSeparator := ´.´;
mas tome cuidado q isso afeta toda sua aplicação -- E, vc aconselho tb, no início da sua aplicação fazer uma chamada para::
Application.UpdateFormatSettings := False;
Se vc não quer mudar o DecimalSeparator para toda a aplicação (o q algumas vezes não é desejável), vc pode criar uma função tipo::
T+
Exato! O separador de decimais no IB é o ponto (.)
|Por favor, Como posso resolver isto?
Formate o número para usar ponto como separador de decimais! Uma forma de fazer isso é mudando a variável DecimalSeparator::
DecimalSeparator := ´.´;
mas tome cuidado q isso afeta toda sua aplicação -- E, vc aconselho tb, no início da sua aplicação fazer uma chamada para::
Application.UpdateFormatSettings := False;
Se vc não quer mudar o DecimalSeparator para toda a aplicação (o q algumas vezes não é desejável), vc pode criar uma função tipo::
function FloatToStr2(Value: Extended): string; var DefaultSeparator: Char; begin DefaultSeparator := DecimalSeparator; DecimalSeparator := ´.´; Result := FloatToStr(Value); DecimalSeparator := DefaultSeparator; end;
T+
Responder
Gostei + 0
03/08/2004
Ivonei
É isto mesmo.
Muito obrigado afarias. :D
Muito obrigado afarias. :D
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)