Portabilidade de r-codes - parte III

Escrito por Marcos Kirchner em 6 de outubro de 2008, 07:53h

Nos posts anteriores desta série, verificamos que o tipo de interface e a versão do Progress e plataforma afetam a portabilidade dos r-codes.

O tipo do banco de dados acessado pelo programa também afeta a portabilidade do r-code.

Esta regra afeta apenas os programas que fazem algum tipo de acesso a banco de dados. Um programa que faça análise de arquivos de log e não utilize banco de dados, por exemplo, não seria influenciado.

Os programas 4GL/ABL podem ser compilados para executação com bancos de dados Progress, ou com DataServer Oracle, SQL Server e ODBC. Quando um r-code é gerado, o compilador inclui no arquivo .r informações de quais bancos de dados o programa faz referência, e qual o tipo de cada um dos bancos de dados. Em tempo de execução, o Progress verifica se o tipo do banco de dados conectado na sessão é o mesmo que foi utilizado na compilação do programa. Se o tipo de algum banco de dados for diferente do utilizado na compilação, serão gerados os error 869 e 916:

c:\PROGRESS\sh\programa.r Database ems5 has type PROGRESS (869)
But connection to type MSS was requested. (916)

O erro 869 indica qual o tipo de banco de dados conectado atualmente na sessão, e o erro 916 indica com qual o tipo de banco de dados o programa foi compilado.

Por conta desta incompatibilidade, não é possível compilar um programa em Progress e e executá-lo em um ambiente com banco Oracle, e vice-versa. Este é o motivo pelo qual a Datasul possui expedições diferentes dos seus produtos, para execução com bancos de dados diferentes.

Os seguintes KBases da Progress possuem informações adicionais:
Can programs compiled with 10.0B be executed in a 10.1A for Dataservers?
Errors 869 and 916 attempting to run r-code compiled against progress database on a foreign database

Categorias: Ambiente | Banco de dados | DataServer | Progress

Tags: , ,

Comentar




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