Diferenças ambiente Datasul com base Oracle - PARTE I

Escrito por Nilson Miguel Devegili em 11 de setembro de 2008, 08:56h

Coluna PROGRESS_RECID

Uma das diferenças não visível no Schema Holder Oracle que não pode ser observado pela ferramenta Progress Data Dictionary é a existência do controle aplicado pelo Progress no lado Oracle para manter a compatibilidade em relação ao RECID do Progress.

Observe a estrutura da tabela no lado Oracle, seja por ferramenta gráfica ou simplesmente pelo comando “DESCRIBE” do SQLPLUS, note que o último campo de qualquer tabela no ambiente Datasul corresponde à coluna de nome PROGRESS_RECID.

Ao abrir um arquivo de definição Progress exportado do Schema Holder, note que existe a definição do campo PROGRESS_RECID nas primeiras linhas da definição de cada tabela. Esse será o único lugar onde é apresentada a informação sobre a localização desta coluna no Oracle.

O conteúdo do campo PROGRESS_RECID é um seqüencial recuperado pela consulta no objeto do tipo “SEQUENCE”, onde para cada tabela do produto tem uma seqüência associada e que o seu nome é composto com o nome da tabela terminado com o sufixo “_SEQ”.

É importante ressaltar que não é necessário criar mecanismo via programa que alimente a coluna PROGRESS_RECID quando inserido um registro pelo Progress com Dataserver Oracle, pois o Dataserver realiza a tarefa de ler o valor da seqüência e adiciona no campo para cada registro inserido na tabela.

Como este campo é seqüencial e único, é criado um índice único que o consiste e possui no seu nome a sintaxe padrão com sufixo “##REC”.

Assim, quando aparecer a mensagem Oracle na tela a descrição em português como “Restrição Exclusiva” ou no Inglês como “Unique Contraint” complementado pelo  nome do índice onde aparece o sufixo “##REC”, indica houve tentativa de inserir valor existente na coluna PROGRESS_RECID.
 
Outro ponto interessante é que ao realizar export dos Dados "DUMP" pelo Schema holder via ferramenta “Data Administrator”, o Dataserver não recupera o conteúdo do campo PROGRESS_RECID para dentro do arquivo de texto gerado. Não se preocupe porque o controle é somente para o ambiente Dataserver Oracle. Na importação “LOAD”, o Dataserver fará o controle durante o insert na coluna PROGRESS_RECID.

Para quem programa ou administra o ambiente, comandos como FIND FIRST, FIND PREV, FIND LAST, utilizam diretamente o campo PROGRESS_RECID para seleção dos registros a serem apresentados.

Caso a coluna PROGRESS_RECID não exista, é porque outra coluna da tabela foi eleita como identificador único ao gerar o Schema Holder pelo Dataserver Oracle.

Categorias: DataServer | Oracle

Tags: , ,

Comentários (1) -

em 17 de setembro de 2008, 17:49h

Muito boa esta explicação!
Estava me sentindo um pouco sozinho com o Dataserver...

Pedro Henrique

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: