Back-up e restore em Clipper Summer 87

Autor: Tarso Dutra Blitzkow de Queiroz


Todos os sistemas necessitam de meios para executar uma cópia de segurança de suas informações. Os sistemas desenvolvidos em Clipper não fogem a regra (tudo bem, você deve estar achando que eu descobri o Brasil).

No final do ano de 1990, ao pesquisar as rotinas disponíveis para sistemas em Clipper e que executassem o famigerado back-up e restore, só encontrei soluções que atendiam parcialmente o processo.

A solução que melhor executava o processo era a chamada do Backup e Restore do DOS, através do comando Run. Mas o uso deste processo gerava alguns problemas. Alguns desses são especificados em manuais e publicações, tais como: a execução de comandos do DOS usando o Run requer memória disponível para a execução da segunda cópia do Command.com e do utilitário em si, o ambiente deve estar mapeado corretamente para sucesso da execução do Run etc. Outros problemas são verificados na apresentação da solução, pois ao ser executado o utilitário responsável pelo processo, o sistema perderia totalmente o controle, existindo a necessidade de se restaurar a tela quando o controle voltasse para o sistema em si. E mesmo a interface de comunicação com usuário seria determinada pelo utilitário em si.

O problema estava armado (ou seria o circo), e uma solução seria criar as rotinas de back-up e restore controladas através de programa (funções), que seriam incorporadas ao sistema.

Assim, foi "criado" o algoritmo de controle de back-up e restore, que previa as seguintes tarefas:

- Verifica a existência/tamanho dos arquivos a serem copiados;

- gerar um header para controle/orientação quando da cópia/restauração;

- apresentação mais voltada a usuários "finais" dos sistemas;

- "quebra", em quantos discos forem necessários, do arquivo a ser copiado;

- em caso de problemas na restauração do arquivo, um formato de gravação que permitisse a utilização de processos alternativos (como Copy em modo binário do DOS), para a recuperação das informações gravadas;

- retorno de Status das operações, para tratamento dentro do sistema, etc.

Outra questão que surgia era em que linguagem seria desenvolvido o processo de back-up e restore?

A utilização de "C" ou Assembler seria recompensada pela performance, mas teria como desvantagem o tempo de desenvolvimento. Também as rotinas de apresentação deveriam ser desenvolvidas, gerando assim um trabalho a mais.

Porém, o Clipper fornece funções de baixo nível que atendem, e bem, a necessidade de gravação/leitura das informações. Manutenção, futuras implementações/melhorias e modificações ao gosto do "freguês", apresentaram-se como grandes vantagens em se desenvolver com os próprios recursos oferecido pelo Clipper. A questão performance não chega a influenciar muito, considerando o propósito da rotina. Assim, foram desenvolvidas as rotinas de back-up e restore, em Clipper versão Summer 87 - para se utilizar na versão 5.01, as alterações não são muitas.

Não vou entrar em detalhes de funcionamento da mesma. Para adquirir uma cópia, envie um disco. O início do programa possui uma rotina exemplo, que mostra como se implementam as funções dentro dos programas. E uma vez com os fontes, as melhorias e alterações ficam a seu critério.

O importante é não esquecer de fechar os arquivos a serem copiados, pois uma parte deles pode estar na memória, e os dados que são gravados saem do disco, fazendo com que a cópia de segurança não seja tão segura.

Uma vez que você esteja com o programa, analise-o, e, quanto a utilizá-lo em seus sistemas, Você decide...