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
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a