Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Detalhes sobre precisão numérica em tabelas

...

Portuguese

Pagetitle
Data width error - Field XXX Value YYY
Data width error - Field XXX Value YYY

Data width error - Field [XXX] Value [YYY]

Esta

ocorrência

é

reproduzida

em

um

programa

AdvPL,

quando

da

tentativa

de

gravação

ou

atualização

de

um

conteúdo

numérico

em

uma

tabela,

independente

da

RDD,

quando

o

campo

especificado

possui

uma

quantidade

de

dígitos

inteiros

na

estrutura

que

não

é

suficiente

para

armazenar

o

valo

atribuído

ao

campo.

TOTVS Build 7.00.100601A-20100727
ERRO THREAD ([5604], mmerotto, SOL_MMEROTTO)    29/12/2010   15:20:28
Data width error - Field: ZZ_RECNO Value: 1008675.000000 on TSTSIZE(PENDTST.PRX) 06/08/2010 16:09:58

Quando reproduzida esta ocorrência, deve ser verificada a estrutura da tabela e o código-fonte que tentou fazer a atribuição.


Informações

Normalmente essa ocorrência é reproduzida em atribuições a campos numéricos. Por padrão, uma atribuição de uma string maior do que o tamanho suportado do campo é "truncada" ao tamanho suportado. 

Quando criamos uma tabela usando a função DbCreate() , informamos o tamanho total do número armazenado (em bytes), e informamos quantos digitos serão reservados para a  precisão decimal. Quando informamos por exemplo um tamanho de 18 digitos e 0 decimais, o campo é capaz de armazenar e aceitar um valor de até 18 digitos numéricos ( 123456789012345678 ) ... 

Porém, quando informamos um valor decimal maior que zero, a precisão numérica total é diminuída em uma unidade -- pois o ponto decimal consome um byte na representação do número. Logo , um campo numérico criado com tamanho 18 e precisão decimal 8, suporta um número inteiro com no máximo 9 digitos ( 18 - 8 - 1  = 9 : Tamanho total, menos o numero de digitos reservados para a parte decimal, menos um byte usado para o ponto decimal ) .