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
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
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)