Tempo aproximado para leitura: 00:02:59 min
Dúvida
Quais são as regras para execução de programas compilados em Progress?
Ambiente
Framework - Framework (Linha Datasul) - Progress OpenEdge – Versão 12
Solução
A partir do Progress 11.0 os R-CODE são portáveis entre plataformas, independente da arquitetura 32-bit ou 64-bit. Esta regra é válida desde que se utilize a mesma interface Character ou Gráfico, e que não contenha comandos específicos de determinado Sistema operacional, exemplo OS-COMMAND.
Então é possível compilar um programa em Progress 11 32-bit Windows e executá-lo em um ambiente Progress 64-bit Linux, e vice-versa?
Sim, é possível. É importante lembrar apenas que se o programa possuir interface, ele só poderá ser executado no tipo de ambiente em que foi compilado Character ou Gráfico. Se um programa com interface for compilado em ambiente Character, por exemplo e executado em ambiente Gráfico, será exibido o erro abaixo:
Program program-name was compiled under another incompatible display environment. Cannot run without recompile. (4438)
Compilados para ambientes Progress, Oracle e SQL Server:
No momento da compilação do programa, o compilador inclui no R-CODE os bancos de dados utilizados e qual o tipo de cada um dos bancos de dados. Para o produto Datasul, são gerados R-CODE para bancos de dados Progress, Oracle e SQL Server.
Na execução dos programas, o Progress verifica se o tipo de banco de dados que está conectado na sessão é o mesmo tipo em que ele foi compilado. Se o tipo de banco de dados no ambiente do cliente for diferente do que o programa foi compilado, a mensagem abaixo será apresentada:
<program name> Database <dbname> has type <type> (869)
But connection to type <type> was requested. (916)
Exemplo:
Men/men906za.r Database shemsfnd has type Oracle (869)
But connection to type Progress was requested. (916)
A mensagem de exemplo indica que o programa men/men906za.r foi compilado em um ambiente com banco de dados Progress mensagem 916, mas o ambiente sobre o qual o programa está sendo executado é um ambiente Oracle mensagem 869.
Para corrigir este erro é necessário substituir o programa men/men906za.r deste ambiente para o tipo de banco de dados correto, que no caso do exemplo, é um ambiente Progress.
Saiba mais
Informações adicionais no kbase da Progress OpenEdge 10.x and 11.x R-CODE bit compatibility rules
0 Comentários