public m.gcInsertDisabled public array aUpgrade(1,1) m.lnUpgrade=adir(aUpgrade,".\upgrade\*.dbf") for m.loop1=1 to alen(aUpgrade,1) wait window "Upgrade da tabela "+aupgrade(m.loop1,1) noclear nowait m.lcMacro=".\upgrade\"+aupgrade(m.loop1,1) m.lcMacro1=".\db\"+aupgrade(m.loop1,1) use (lcMacro) exclusive zap append from (lcMacro1) endfor release m.gcInsertDisabled close databases all wait window "Linkando novas tabelas" noclear nowait copy file .\upgrade\*.* to .\db wait window "Apagando versão antiga" noclear nowait delete file .\upgrade\*.* =messagebox("upgrade realizado com sucesso. ",64,"Informação")Assim, não importa que modificação fizemos ou mesmo que tabela, o upgrade das tabelas sempre vai acontecer normalmente.