Em diversos pontos do sistema, iremos nos deparar com o conceito de Tipo dos campos. Junto com os tipos, em geral, teremos também o seu tamanho e decimal.

Os tipos existentes no TOTVS Linha Protheus são:

  • Numérico

Campos numéricos são utilizados para armazenamento de valores. Sempre que utilizamos os campos numéricos precisamos definir o seu tamanho e a quantidade de casas decimais que o mesmo irá utilizar. A decimal determina dentro do tamanho quantos caracteres são utilizados para armazenar as casas decimais. O ponto do separador também subtrai do tamanho final do campo.

Um campo com tamanho 12 e duas decimais possui 9 inteiros + 1 ponto decimal + 2 decimais.

Campos Numéricos devem ser utilizados para armazenamento de valores, tais como preço unitário, ou percentual de desconto.
O limite máximo de um campo numérico é de 16, e podemos usar no máximo 8 casas decimais para ele. 

Por exemplo (nos exemplos abaixo o '.' é o separador de milhar e a ',' o separador de decimais)

Campo numérico sem decimais :  9.999.999.999.999.999

Campo numérico com 1 decimal:  99.999.999.999.999,9

Campo com 8 decimais (máximo para decimal) :  9.999.999,99999999

  • Caractere

Campos caracteres são representações de cadeia de caracteres, podendo armazenar números, caracteres e símbolos, podemos fazer uma analogia ao tipo string do Java©.  Não podemos confundir com o tipo char de linguagem com o C, aonde temos apenas 1 caractere na variável.

Normalmente utilizamos campos do tipo caractere para campos que onde se precisa armazenar código, nomes, endereços.

Campos Caractere possuem o  tamanho fixo, e ocupam o espaço definido pelo seu tamanho no banco de dados.

  • Lógico

Pode representas os valores lógicos de verdadeiro(.T.) ou false(.F.)

Campos lógicos sempre possuem o tamanho de 1, e não possuem decimal.

  • Memo

Campos Memos são um tipo especial de dados, aonde podemos armazenar uma grande quantidade de dados.

Campos Memos sempre possuem o tamanho de 10, e não possuem decimal.

Normalmente utilizamos campos memos quando precisamos armazenar uma  quantidade muito grande de dados sem fazer uso campos caracteres muito grandes, como por exemplo para campos de observação, onde o usuário é livre para digitar um texto qualquer.

Os campos memos quando utilizados em ambiente com TOPCONECT, portanto, banco de dados relacionais, podem utilizar 2 tipos de campos: BLOB ou CLOB. O padrão de criação do tipo de memo é definido pelo SX2, no campo X2_MEMTYPE. O padrão do sistema é o BLOB, que cria campos binários, caso for definido a utilização de CLOB o campo será criado como um caractere especial dependendo do banco. Se utilizado BLOB não é permitido utilizar o campo em índice e filtros.

  • Data

Campos do tipo data armazenam as data. Ela não salva hora. No SGDB o campo é armazenado como string no formato AAAAMMDD.

Campos Data sempre possuem o tamanho de 8, e não possuem decimal.

  • Sem rótulos