## Restrições Quando Utilizado o Data Viewer em Oracle

##### Objetivo

Permitir o entendimento do funcionamento do Data Viewer em Oracle, oferecer ajuda necessária para possíveis erros devido aos tamanhos de campos.

##### Visão Geral

Para utilização do Data Viewer na plataforma Oracle, é necessário o Schema Holder do banco. O Schema Holder é um banco Progress como outros comuns, sendo a diferença na gravação dos dados. Em vez de conter os dados da aplicação, ele contém uma "cópia" da estrutura das tabelas, colunas, índices, etc, que existem no Oracle. O Schema Holder serve para que o compilador do Progress possa gerar programas, e para fazer o mapeamento dos nomes dos objetos no momento do acesso. Para mais detalhes, consultar o manual "DataServer for Oracle/SQL Server" fornecido pelo site da Progress.

##### Progress x Oracle:

O banco Progress tem como característica aceitar um conteúdo maior que o definido em banco para o campo. Por exemplo, o campo pais é definido com tamanho 10, mas pode ultrapassar o valor 10 na gravação dos dados. O banco Oracle por sua vez não permite que os campos com tamanho definido grave além do seu tamanho e, além disso, há limite de tamanho de tabela (soma dos campos da tabela) que não deverá ultrapassar 32k(32000) definido pela Oracle sendo inexistente esse limite no banco Progress. Outra diferença importante abordar é que o Oracle é case sensitve e o Progress não. Alguns campos com prefixo U## são utilizados pela Progress para tratar essa diferença no lado Oracle, sendo visível apenas no Oracle, caso algum campo for alterado se tiver o campo com U## deverá ser alterado também.

##### Possíveis erros com outros bancos:

Caso for gerar um relatório para um banco Progress que não seja os produtos Datasul ERP, é possível que conforme a estrutura do banco utilizado aconteça algum erro de tamanho de campo, abaixo uma breve explicação sobre os erros que eventualmente estão sujeitos a acontecer nas funcionalidades de administrar tabela e de selecionar campos para o relatório.

Na imagem abaixo, exibe a função de administrar tabela do Data Viewer, pode ocorrer erro com um banco de um produto que não pertence ao grupos de produtos do Datasul ERP e, possivelmente, por esse banco ter algum campo com nome, descrição ou alguma informação do campo com um volume de caracteres alto.

Na funcionalidade de Campos do Relatório, apresentada do Data Viewer, pode apresentar alguns erros pelo mesmo motivo comentado acima.

##### Resolução de possíveis erros:

Para descobrir os campos que apresentaram erro devido ao tamanho, pode-se consultar o arquivo com nome dataserv.lg. Esse grava informações de log, como conexão com banco Oracle e os campos e o nome das tabelas cujo os campos apresentaram o erro de tamanho. Segue exemplo dos campos que ultrapassou o limite de tamanho e ficou registrado no dataserv.lg:

Character field too long; table: BANCO.GR_CP_RL column: COD_LABEL_CAMPO. (2728)

** valor muito grande para a coluna "BANCO"."GR_CP_RL"."COD_LABEL_CAMPO" (real: 22, máximo: 20)

Importante:
Para resolver esses erros, basta alterar a definição do campo apresentado no dataserv.lg no Oracle, aumentando o tamanho do campo para receber o valor passado, mas, lembrando que, a soma dos campos da tabela não deverá ultrapassar 32k(32000).

Nota Importante:
Todos os erros encontrados com os bancos do produto Datasul ERP deverão ser repassados para TOTVS S/A para sua correção, com exceção dos bancos que não pertence a esse grupo que poderá ser solucionado como exibe acima.

##### Restrição nos pontos de Inserção de Fontes Livres:

O Data Viewer possui 26 Pontos de Inserção de Fontes Livres dentro do código fonte que é gerado para cada programa de relatório. Existe uma limitação de tamanho, de 2000 caracteres por fonte livre por ponto de inserção para banco Progress e 1000 caracteres para banco Oracle.

Nota de funcionamento:
O produto deve ter o mesmo tipo de banco de dados que o Data Viewer. Ex: Data Viewer em banco Oracle com EMS 2 em banco Oracle, Data Viewer em banco Progress com EMS 2 em banco Progress.

| Topo |