RES: [firebase-br] Erro de Conversão

Thiago Vidal thiago em datatech.com.br
Qui Out 7 15:08:06 -03 2004


Pessoal,


Não sei se voces lembram, mas existia uma procedure no pascal
que faz justamente este tipo de conversão. A procedure Str

Str(ValorFloat:Tamanho:CasasDecimais, ValorConvertido);

por exemplo:

function SqlFloat(Num: Extended; CasasDecimais: Byte = 2): string;
begin
  Str(Num:0:CasasDecimais, Result);
end;

SqlFloat(1500) = '1500.00'
SqlFloat(1500.2) = '1500.20'
SqlFloat(1500.2, 4) = '1500.2000'


Como essa função é do pascal (anterior ao delphi) ela nao utiliza o ponto
decimal contido na variável
DecimalSeparator, mas utiliza sempre o ponto '.' como separador deceimal,
daí ela ser perfeita para
ser utilizada nesse tipo de rotina de conversao para montagem de SQL.


_______________________
Thiago Oliveira Vidal


"Marcelo Wollmer" <marcelowollmer em yahoo.com.br>
escreveu na mensagem news:s1651221.021 em emdel.com.br...
Obrigado pela dica, mas mesmo atribuindo a propriedade VALUE, continua dando
os mesmos erros.

Obrigado!

Marcelo Wollmer
Centro de Informática - EMDEL S/A
(19)3404-2598 - (19)9182-2272
MSN marcelowollmer em hotmail.com

>>> banzatto em ig.com.br 07/10/04 10:16 >>>

Por algum acaso esse TCurrencyEdit não tem uma propriedade value ? Vc pode
pegar essa propriedade ao invés do text.
Eu creio que o problema não esta no banco e sim no componente.


-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br] Em
nome de Marcelo Wollmer
Enviada em: quinta-feira, 7 de outubro de 2004 09:03
Para: lista em firebase.com.br;
lista-delphi em yahoogrupos.com.br
Assunto: [firebase-br] Erro de Conversão

Bom dia Lista,

Utilizo Delphi 6 + dbExpress + FB 1.5

O problema é o seguinte:

Tenho um campo na minha tabela Produtos com os seguintes atributos:
Nome: VLRLUCRO        Tipo: FLOAT

Tenho uma SP de inclusão de produtos nesta tabela, onde o parâmetro
referente ao campo acima é o seguinte:
Nome:  PVLRLUCRO     Tipo: FLOAT

No Delphi, tenho no form um TCurrencyEdit com as seguintes propriedades:
Name: mskdtVlrLucro
DecimalPlaces: 2
DisplayFormat: 0.00

Para passar esse TCurrencyEdit para o parâmetro da SP, faço o seguinte:

DM.spProduto.ParamByName('PVLRLUCRO').AsFloat :=
strtofloat(mskdtVlrLucro.Text);

Após atribuir todos os conteúdos do Form para os parâmetros da SP,
inicializo a transação e executo a SP.

Ai ocorre dois erros:

1) Se eu deixar o TCurrencyEdit sem preenche-lo: "Não é um valor de Ponto
Flutuante Válido"

2) Se eu preenher, por exemplo, com 5000,20: "Conversion error from string
"5000.2000000000000  ""

Onde estou errando?
Agradeço qualquer ajuda.

Grato.

Marcelo Wollmer
Centro de Informática - EMDEL S/A
(19)3404-2598 - (19)9182-2272
MSN marcelowollmer em hotmail.com


______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br








Mais detalhes sobre a lista de discussão lista