VALOR DECIMAL NO FIREBIRD

FGONCALVES 15/01/2010 10:06:40
#331973
to tentando gravar no firebird valores com casas decimais, mas estou tento problemas pq o firebird esta gravando o valor pelo número de casas decimais

ex: 1,00 => 100,00
1,50 => 150,00

um colega disse q devo usar ponto final como separador de decimal, então fiz assim:

dim custo as single
custo = 1.5

tbm nao adiantou.

sera q alguem tem outra sugestao???
MARCOSLING 15/01/2010 10:16:07
#331974
Resposta escolhida
pois é, o problema é que vc está [Ô]jogando[Ô] o valor numa variável do tipo single, aí não adianta pq volta na mesma situação... tem que ser direto na sua query

veja:

...update tabela set custo=1.5...


FGONCALVES 15/01/2010 11:50:38
#331995

certo,
ja tentei assim tbm:
ex:

no textbox.text ta assim: 1,50

então fiz assim: update tabela set custo=replace(textbox.text, [Ô],[Ô] , [Ô].[Ô])

ou seja, substituindo a vírgula por ponto. no final
MARCOSLING 15/01/2010 15:00:05
#332041
e funcionou?
FGONCALVES 15/01/2010 18:40:07
#332082

agr fiz diferente,

todos meus campos q possuem valores monetários tem R$. então declarei uma variável do tipo string onde ela recebe o valor ja sem o R$, daí uso o replace pra substituir a vírgua por ponto como separador de decimal...

funcionou agr, mas isso eh mto tosco, além do mais, são mais linhas de programação que ao meu ver sao desnecessarias.

agr me diga, eh assim mesmo? ñ tem outra solução pra quem usa firebird???

obrigado pela paciência, amigo Marcos!!!
MARCOSLING 15/01/2010 19:07:44
#332087
Na verdade, isso vale para qualquer banco de dados.

existe um truque para minizar isso:

veja:
dim v_valor as single

v_valor=1,55

sql= [Ô]...update tabela set custo=[Ô] & str(v_valor)...

a função str() converte o valor em string e automaticamente substitui a vírgula pelo ponto
FGONCALVES 15/01/2010 19:27:10
#332088

putzzzz... eu nem tinha pensando nisso!!! por isso q gosto de programação! ehehe

e é aí q tá a diferença do programador e do PROGRAMADOR!!! kkk
qto menos linha, melhor! menos lixo!

deu certinho, Marcos! grato pela ajuda!
Tópico encerrado , respostas não são mais permitidas