Migração do Clipper 5.01 para 5.2

ERRO NA ATUALIZAÇÃO DO CLIPPER PARA VERSÃO 5.2

erro na atualização do clipper

Saiba como resolver o erro na atualização do Clipper versão 5.2e "DBCMD/1011 Alias already in use"  num método prático de uma vez só sem precisar quebrar a cabeça com o código do seu sistema.

Erro que aparece no Clipper 5.2e ao abrir banco de dados: "DBCMD/1011 Alias already in use". 

Em um sistema Clipper quando um programa abrir um banco de dados para trabalhar deve fechar depois no final, até pra não deixar o tráfego da rede lenta. Todavia, na prática, nem sempre isso acontece. Muitas vezes o programa abre vários bancos de dados e depois não fecha. Daí a versão do Clipper 5.2e foi bem rigoroso e pegou no pé de quem fazia isso dando erro se tentasse abrir um banco de dados que já estava aberto.

É, amigo. Na versão anterior 5.01 não havia isso... você abria o mesmo arquivo em vários momentos do seu sistema e isso nunca aconteceu... e agora? Teremos que verificar se o arquivo já está aberto toda vez que for abrir um arquivo??? Substituir por uma função??? De qualquer forma, ter que alterar todo o sistema será muito trabalhoso... e é por isso que você está lendo isso! Você quer outra solução, uma saída elegante e profissional para este caso... E VOCÊ TERÁ!!!

Sabemos que todo comando em Clipper é transformado em uma função (Nossa sorte! USE é um comando) e todos os comandos do Clipper estão no arquivo de cabeçalho \include\STD.ch.

Calma! Não é só isso! As alterações que você fizer no arquivo STD.ch não serão consideradas pelo Clipper...! (hã?!)

 

O QUE PRECISAMOS FAZER

Baixe o arquivo anexo, migra52.zip.

 

Precisamos fazer uma cópia do arquivo STD.ch para outro arquivo, STD_BAK.ch, por exemplo.

Agora busque a palavra DBUSE dentro do arquivo STD_BAK.ch; na linha que traduz o comando USE para a função DBUSEAREA, troque o nome DBUSEAREA para o nome de nossa função: BWNUSE. Salve o arquivo (Veja o arquivo STD_BAK.ch dentro do Migra52.zip baixado)

Compile o arquivo USEFILE.prg e o insira na sua biblioteca de funções (preferivelmente) ou linkedite o objeto deste arquivo no seu sistema. Neste arquivo está minha função para abrir os arquivos sem problema algum. O arquivo USEFILE.prg está incluido no arquivo Migra52.zip.

Ao compilar os programas do sistema insira o parâmetro /U com o nome do novo arquivo de cabeçalho que o Clipper irá usar colado nesse parâmetro, STD_BAK.ch. Exemplo:

Clipper <programa> /USTD_BAK.ch

Ou no seu arquivo do Rmake (.rmk):

// Determine if DEBUGging is enabled
#ifdef DEBUG
       CompOptions := /b /m /n
#else
       CompOptions := /m /n
#end
.prg.obj:
 clipper $< $(CompOptions) /USTD_BWN.ch
 PRGs.obj : PRGs.obj

Com isso você dribla este problema de versão que o impedia de rodar o seu sistema em Clipper 5.2!!! Sorrindo à toa!

Talvez ocorra alguns problemas na função que você desenvolveu com a classe TBROWSE, principalmente se você andou passando argumentos errados para ela ao longo do seu sistema...! DICA: Veja os exemplos da CA em \SOURCE\TBROW\ e reescreva sua função de acordo com eles se for o caso.

 

Anexo: 

Sociais: