Automatização da reestrutura dos DBF

Atualização da estrutura dos DBF
Atualização da estrutura dos DBF
Know-How enviado por Pontelo da MEGA Micro

Automatize a reestruturação dos DBF!

 
 Desenvolvemos para nosso sistema um método que automaticamente verifica se os DBFs tiveram alteração de estrutura e ajusta os arquivos para a nova estrutura. O conceito é o seguinte :
 
1. Você define todas as estruturas de todos os arquivos os quais seu sistema irá manipular.
2. Você cria uma função que retorne essa estrutura. No nosso caso, GetStru()
3. Ao subir o sistema, você pega cada estrutura dos arquivos - com dbstruct() por exemplo - e a estrutura definida internamente no seu sistema.
4. Você compara as duas estruturas - no nosso caso, com CmpStru()
5. Se forem iguais, está tudo OK e você retorna.
6. Se diferentes - qualquer diferença que não alteração de tipo de campo (pois neste caso poderá ser gerado um erro com os comandos utilizados nesta função ) , você deverá :
6.1 Gravar um arquivo novo com os dados atuais.
6.2 Comparar os dados gravados com os atuais.
6.3 Apagar o atual e criar o novo com a nova estrutura.
6.4 Appendar os dados do arquivo gravado
6.5 Comparar os dados appendados com os gravados originalmente.
7. Fim do Processo.
 
Algumas proteções são colocadas :
1. Ao começar uma revisão , o sistema cria o Arquivo VERSION.DAT . Se algum outro terminal tentar subir o programa e, se encontrar este arquivo, significa que :
1.1 Algum terminal está fazendo revisão e eu não posso subir agora.
1.2 Alguém (talvez eu mesmo) estava fazendo revisão de sistema e o sistema caiu , ou a máquina caiu, parou a força, etc...
Em qualquer caso, deve haver duas opções, Você entrar e continua Revisão ou Desiste de subir no programa para subir mais tarde.
2. Conforme começar a revisão, todos os arquivos de índice associados ao arquivo serão apagados o sistema deve ter mecanismos de criá-los automaticamente sempre que for abrir um arquivo.
3. Se sistema caiu fazendo revisão, através do estado do arquivo de back-up gravado, ele saberá em que ponto parou e o que fazer para não perder dados.
4. Uma variável global, associada preferencialmente a algum campo de um arquivo de configuração do sistema, indicará se pode ou não haver checagem ou não de integridade de DBFs e NTX.
 
Envio arquivo anexo com as funções descritas neste documento. Espero que possa ser útil a alguém.
AnexoTamanho
megam1.zip12.32 KB