Consultor Eletrônico



Kbase 51755: Informação de versão de r-codes
Autor   Marcos Kirchner - STF
Acesso   Público
Publicação   12/1/2016
Uma das regras para que um r-code seja portável para outros ambientes está relacionada a versão de Progress utilizada para gerar o r-code e recursos utilizados no programa.

Quando um r-code é gerado, o compilador do Progress coloca no cabeçalho (header) do r-code a versão para o qual ele foi compilado. A versão contida no r-code varia de acordo com a versão do Progress utilizada para compilação e os recursos de Progress que foram utilizadas no programa.

Considere o código abaixo:
DEF VAR h AS HANDLE.
CREATE CLIENT-PRINCIPAL h.
DELETE OBJECT h.

O r-code gerado a partir deste código apresenta a versão 1005, independente de ter sido compilado com 10.1A, 10.1B ou 10.1C. Como a versão do r-code é a mesma, este programa é portável entre estas três versões.

Em contrapartida, o programa abaixo utiliza um recurso novo do 10.1C e não compila em versões anteriores:
DEFINE VARIABLE hStream AS HANDLE NO-UNDO.
DEFINE STREAM myStream.
hStream = STREAM mySTream:HANDLE.

O r-code gerado a partir deste código apresenta a versão 1009 e não executará em versões anteriores à 10.1C.