Fórum ExecuteDirect() no FireBird, o que há de errado ? #54303

19/12/2005

0

Olá!

Sou Desenv. Delphi-7 + IB/FB + DBExpress.

TEnho a Seguinte dúvida:
Estou usando o DMCN.SQLConnect.ExecuteDirect(), p/ atualizar valores e acontece o seguinte:
com valores s/ casas decimais funciona bem, mas qdo tem decimal, o valor é multiplicado p/ 100

Ex: Preco := 2,00;
Valorx := FormatFloat(´#0.00´,Preco);
DMCN.SQLConnect.ExecuteDirect(´UPDATE ITENSVD SET PRECO = ´+QuotedStr(Valorx)+´ WHERE CODVENDA = ´+QuotedStr(IntToStr(Codvenda))+´ and CODPROD = ´+QuotedStr(Codprod));
O resultado está ok.

Ex: Preco := 2,25;
Valorx := FormatFloat(´0.00´,Preco);
DMCN.SQLConnect.ExecuteDirect(´UPDATE ITENSVD SET PRECO = ´+QuotedStr(Valorx)+´ WHERE CODVENDA = ´+QuotedStr(IntToStr(Codvenda))+´ and CODPROD = ´+QuotedStr(Codprod));
O resultado está é incorreto na tabela, igual a R$ 225,00.

Então pergunto porque acontece isso e como resolver ?



Desde já meus agradecimentos.

ANT.CARLOS/SP


Ant.carlos/sp

Ant.carlos/sp

Responder

Posts

25/12/2005

Joaoshi

Colega,

Preco := 2,25;
Valorx := FormatFloat(´#0.00´,Preco);
Valorx := StringReplace(Valorx,´,´,´.´,[rfReplaceAll]);

a ideia a trocar o separador decimal de , para .

Espero ter ajudado.


Responder

Gostei + 0

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

Aceitar