Reparando / compactando um banco de dados access usando o ASP
Um problema comun a sites que utilizam de bases de dados access é a necessidade de compactar / reparar a tabela de tempos em tempos.
o script a seguir efetua esta tarefa, no entanto é necessario que não tenha nenhum visitante acessando o site e consequentemente mantendo a tabela aberta, recomendo que coloque uma pagina informando que o site esta em amnutenção e aguarde ao menos uns 5 minutos para depois rodar a rotina.
segue codigo:
Repair.asp
<%
oldDB = Server.MapPath("/accessTest.mdb")
bakDB = Server.MapPath("/accessTestBack.mdb")
newDB = Server.MapPath("/accessCompact.mdb")
Set FSO = CreateObject("Scripting.FileSystemObject")
' cria um backup do arquivo
FSO.CopyFile oldDB, bakDB, true
' ompacta a base de dados
Set Engine = CreateObject("JRO.JetEngine")
prov = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Engine.CompactDatabase prov & OldDB, prov & newDB
set Engine = nothing
' Apaga a tabela original
FSO.DeleteFile oldDB
' renomeia a nova tabela para a tabela original
FSO.MoveFile newDB, oldDB
set FSO = nothing
%>