GARANTIR DESCONTO

Fórum Erro com o tipo numeric #42435

17/02/2004

0

Utilizo o Delphi7, banco de dados Firebird 1.5 e Ibo .
Criei minhas tabelas através do IbExpert, para certa tabela de notas criei um domain chamado Nota com o seguinte tipo Numeric size = 3, scale = 2, pois meu campo devera guardar valores entre 0 e 999,99.
Mas quando tento inserir valores maiores que 327,00 o erro abaixo é mostrado no IbExpert (valores => 328,00)
----
Incompatible column/host variable data type
Dynamic SQL error.
Sql error code = -303
Arithmetic exception, numeric overflow, or string truncation
----
Tentei tb fazer a migração de Paradox para FireBird utilizando o IBPump mas como tenho valores acima de 327 na tabela paradox a migração apresenta problemas
Minha pergunta e a seguinte, para o Domain criado (Numeric size = 3, scale = 2) o banco não deveria aceitar valores até 999,99...


Delmar

Delmar

Responder

Posts

17/02/2004

Afarias

|criei um domain chamado Nota com o seguinte tipo Numeric size = 3,
|scale = 2, pois meu campo devera guardar valores entre 0 e 999,99.

Então o SIZE deveria ser 5 :: NUMERIC(5,2)


|Minha pergunta e a seguinte, para o Domain criado (Numeric size = 3,
|scale = 2) o banco não deveria aceitar valores até 999,99...

Não -- NUMERIC(3,2) define números até 9,99

Ai vc se pergunta:: então pq o banco aceita valores até 327,00 ??

Bom, na verdade, ele aceita valores até 327,67 -- pq na realidade, internamente o valor está armazenado em um INTEIRO de 16bits (a menor representação numérica existente no IB) cujo valor máximo q pode representar é 32.767 -- como vc definiu 2 casas decimais, este valor sempre é dividido por 100 --> 327,67



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar