Árvore de páginas

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.


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 ) . 



  • Sem rótulos