Oi Wesller,
> ola, estou migrando um sistema dem firebird para postgre, utilizo conexao
> via ado + clientdataset, mas não consigo > gravar informações em campo
> numeric, segue minha rotina de importacao:
(...)
cds_servico.FieldByName('SE_COMISSAO').AsFloat := T;
cds_servico.FieldByName('SE_TMPGARANT').AsInteger :=
q_servico.FieldByName('SE_TMPGARANT').AsInteger;
cds_servico.FieldByName('SE_STATUS').AsString :=
q_servico.FieldByName('SE_STATUS').AsString;
t := q_servico.FieldByName('SE_VALOR').AsFloat;
cds_servico.FieldByName('SE_VALOR').AsFloat := t;
(...)
> porem da o erro: raised exception class EOleException with message "ERROR:
> column "se_comissao" is of type
> numeric but expression is of type money.
> Como posso solucionar este problema, visto que tanto no firebird como no
> postgree o campo foi criado
> como numeric (9,2) ?
Minhas sugestões:
1. Tente atribuir o valor com AsBCD
cds_servico.FieldByName('SE_VALOR').AsBCD := t;
2a. Crie comandos separados para inserções e alterações, e aí transcreva os
valores para os novos objetos e dê um ExecSQL.
2b. Crie comandos separados para inserções e alterações, e aí transcreva os
parâmetros numéricos como STRING. Isso te obrigará a fazer um CAST no
comando SQL, algo como UPDATE X SET SE_VALOR = CAST( :xxx as numeric )
3. Altere algum parâmetro de configuração na tua conexão. Está usando ADO
com o quê? Driver ODBC? Outro driver? Qual versão? Qual a tua string de
conexão?
Atenciosamente,
Mozart Hasse
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral