Array
(
)

is not a valid floating point value urgente

Placido
   - 07 set 2004

Bom dia.
Instalei minha aplicação no cliente ontem, quase fiquei louco de ver tantos erros (is not a valid floating point value urgente) na minha frente,
preciso resolver isto hoje, gostaria muito de receber ajuda dos internautas do forum.

Utilizo o componente dbexpress, delphi7 faribird 1.5, o cliente tem 10 máquinas com sistema operacional windows 98.
Minha tabela esta definida com campos de valor monetário com 2 ou tres casas decimais ex (prod_vravista numeric(12,2)) ou (prod_vrunitsario numeric (12,3) ou no pedido (ped_vrtotal numeric (12,2)) este campo é calculado e atualizado numa procedure.
Recebo tambem mensagem de acsess violation, será que é porque utilizo qury dinamica para fazer pesquisa?


´O perdão aos outros abre a porta para sermos perdoados´

Placido um abraço a todos


Ronaldo.cutu
   - 07 set 2004

bom dia

a conversão de string para float dependendo do ponto decimal que estiver
em uso vai dar esse erro de is not a valid floating point value
exemplo:

o ponto decimal = ´,´ (virgula)
se vc para uma conversão de uma string de 1.000,00 para float -erro
se vc para uma conversão de uma string de 1000,00 para float -ok

o ponto decimal = ´.´ (ponto)
se vc para uma conversão de uma string de 1.000,00 para float -erro
se vc para uma conversão de uma string de 1000,00 para float -erro

voce pode altera-lo da seguinte forma
DecimalSeparator := ´.´; ou
DecimalSeparator := ´,´;

qualquer duvida estou a disposição

Ronaldo


Placido
   - 07 set 2004

Ronaldo obrigado pela dica, mas faço outra pergunta no meu escritório o sistema operacinal é o xp, me falaram em outro portal que este erro da sistema operacional windows 98 que é o caso do meu cliente, isto tem alguma coisa a ver?
Grato


Ronaldo.cutu
   - 08 set 2004

ate onde eu sei não a respeito do 1º erro, no 2º erro vc tem que ver onde está acontecendo o erro

Ronaldo


Placido
   - 09 set 2004

Uma observação, fui no cliente hoje de manhã, o cliente tem 12 máquinas
sistema operacional windows 98, apenas 2 máquinas da este tipo de erro,
já conferi no painel de controle configuração regional todas as máquinas estão com a mesma configuração.
Grato

Plácido :roll:


Ronaldo.cutu
   - 09 set 2004

como eu te disse até onde eu sei o erro é de conversao, o erro acontece até mesmo no winxp, eu utilizo o winxp com o delphi e tenho outra maquina win98 que meu sistema funciona normalmente, fiz até um teste
antes de te enviar aquela dica

faça um programa para teste e confirme

pode até ser pau de win98 porque so ta acontecendo em 2 maquina voce confiriu a versão do win98 dessa duas maquinas se é igual a outras ou tentar reinstalar o win98, qualquer coisa me mande o script de onde está ocorrendo o erro eu dou analisada

até +

Ronaldo
ronaldo@knr.com.br


Placido
   - 10 set 2004

Ronaldo obrigado pela atenção segue abaixo meu script conforme sua solicitação


Segue abaixo minhas linhas de comanso como voce pediu nos eventos after e befor post.
Lebrando que este erro ocorre quando o cliente aciona a tecla enter no ultimo campo da grig(valor unitario).
Na tebela peditens tem uma Trigger que faz alguns calculos, desativei a trigger para teste e o problema persiste então o
problema não está na trigger.

Placido
   - 10 set 2004

Resolvi o problema, na minha tela de digitação de pedido tem um campo
desconto em valor do pedido, campo este que não é obritatório e eu estava utulizando a função de conversão sem verificar se o conteúdo
estava preenchido ou não como no exemplo.
stpDesconto.ParamByName(´PVRDESCONTO´).AsFloat := StrToFloat(dbVrDesconto.Text);

Coloquei uma condição e problema foi resolvido.

Um abraço.


Dopi
   - 11 set 2004

Só pra complementar....

No Delphi 6 foi introduzida uma nova versão do StrToFloat..

StrToFloatDef( StrFloat, ValorDefault) ;

Se nao for possivel converter o StrFloat , o ValorDefault será assumido. Ex:
StrToFloatDef( StrFloat, 0 ) ;

é pratico pois evita blocos Try e Exceçoes em run-time...