COMO INSERIR DADOS NUMERIC(9,2) NO POSTGRE COM DELPHI 6 ???
23/01/2004
0
ESTOU TENTANDO INSERIR DADOS NUMÉRICOS(DECIMAIS) NO BANCO POSTGRESQL ATRAVÉS DO COMANDO INSERT INTO... E O DELPHI ME RETORNA UMA MENSAGEM DE ERRO ´... INVALID VARIANT TYPE CONVERSION...´ COMO POSSO RESOLVER ESSE PROBLEMA?
Regivan
Curtir tópico
+ 0
Responder
Posts
28/01/2004
Bon Jovi
Vc nao mostrou em que situacao/caso ocorre o erro.
Veja primeiro se está usando o tipo de dados correto no Delphi em relacao ao q esta no banco:
No caso de TFields, usar TBCDField
No caso de TParams/TParameters, usar DataType = ftBCD
No caso de concatenar na string SQL, fazer por exemplo: CAST(290.50 AS NUMERIC)
[img:1702c4fcb4]http://www.badyoungimagens.blogger.com.br/logo.JPG[/img:1702c4fcb4]
[img:1702c4fcb4]http://perso.wanadoo.fr/richiesfire/avatars/j-loap4.gif[/img:1702c4fcb4]
Veja primeiro se está usando o tipo de dados correto no Delphi em relacao ao q esta no banco:
No caso de TFields, usar TBCDField
No caso de TParams/TParameters, usar DataType = ftBCD
No caso de concatenar na string SQL, fazer por exemplo: CAST(290.50 AS NUMERIC)
[img:1702c4fcb4]http://www.badyoungimagens.blogger.com.br/logo.JPG[/img:1702c4fcb4]
[img:1702c4fcb4]http://perso.wanadoo.fr/richiesfire/avatars/j-loap4.gif[/img:1702c4fcb4]
Responder
05/02/2004
Paulomerino
Cara isso tbm estava acontecendo comigo... ai eu fiz uma função que troca as virgulas por pontos e os pontos por virgulas antes de mandar gravar o valor na tabela e deu certo...
é que o postgre adota o formato monetário americano que é diferente do nosso...
faz uma função com um código bem simples do tipo:
valor := ´valor a ser convertido´;
tamanho := Length(valor);
for i := 0 to tamanho do
begin
if valor[i] = ´.´ then
valor[i] := ´,´
else if valor[i] = ´,´ then
valor[i] := ´.´;
end;
espero que isto resolva o seu problema...
falows.... um abraço!!!
é que o postgre adota o formato monetário americano que é diferente do nosso...
faz uma função com um código bem simples do tipo:
valor := ´valor a ser convertido´;
tamanho := Length(valor);
for i := 0 to tamanho do
begin
if valor[i] = ´.´ then
valor[i] := ´,´
else if valor[i] = ´,´ then
valor[i] := ´.´;
end;
espero que isto resolva o seu problema...
falows.... um abraço!!!
Responder
Clique aqui para fazer login e interagir na Comunidade :)