consulta por valor monetário
Ola pessoal do forum
Bem preciso rodar uma consulta por valor monetário na aplicação eu utilizo D7 com SQL2000 e conexão DbExpress.
A rotina esta assim
if combobox1.text = ´Valor Aberto´ then
begin
Close;
CommandText := (´ Select * from receber where re.valor like ´);
CommandText := CommandText +(´+chr(39)+StrToFloat(edit1.text)+chr(39) ´);
Open;
end;
se o valor informado no edit1 é R$158,50 , ele tras 15.850,00 se eu troco (like) ele filtra apenas a parte inteira despresando os centavos
se troco (like) por (=) ele nao filtar valores com centavos apenas inteiros
No sql ele grava com até 16 casas na decimal
Uma luz por favor, obrigado
Denis
Bem preciso rodar uma consulta por valor monetário na aplicação eu utilizo D7 com SQL2000 e conexão DbExpress.
A rotina esta assim
if combobox1.text = ´Valor Aberto´ then
begin
Close;
CommandText := (´ Select * from receber where re.valor like ´);
CommandText := CommandText +(´+chr(39)+StrToFloat(edit1.text)+chr(39) ´);
Open;
end;
se o valor informado no edit1 é R$158,50 , ele tras 15.850,00 se eu troco (like) ele filtra apenas a parte inteira despresando os centavos
se troco (like) por (=) ele nao filtar valores com centavos apenas inteiros
No sql ele grava com até 16 casas na decimal
Uma luz por favor, obrigado
Denis
Decandido21
Curtidas 0
Respostas
Gandalf.nho
10/12/2004
Isso é pq valores fracionários usam ponto para marcar as decimais na notação ´americana´ usada pelos bancos de dados e não vírgula como aqui. Você terá que passar de vírgula para ponto antes de transformar em valor fracionário ou usar um Edit já adaptado para valores tipo ponto flutuante.
GOSTEI 0