Erro de conversão, ao gravar decimal.
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
Curtidas 0
Respostas
Afarias
03/08/2004
|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+
GOSTEI 0
Ivonei
03/08/2004
É isto mesmo.
Muito obrigado afarias. :D
Muito obrigado afarias. :D
GOSTEI 0