Em um artigo recente - Compactando uma base de dados Access - mostramos como compactar uma base de dados Access usando uma extensão da ADO: Microsoft Jet OLE DB Provider and Replication Objects (JRO).
Voltamos ao assunto para mostrar como fazer o mesmo serviço em base de dados remotas, ou seja, vamos compactar uma base de dados Access 2000 (ou Access 97) que esta em um servidor da web.
Para isto iremos criar um arquivo de script ASP chamado compacta.asp que irá executar o mesmo procedimento abordado no artigo anterior citado. As mudanças no código ocorrerão por conta da maneira de usar a ADO com o VBScript , ASP e o código HTML. Vamos lá...
Vamos criar um único arquivo que conterá o código necessário para compactar o nosso banco de dados remoto. Este arquivo terá uma função que realizará a compactação propriamente dita e deverá exibir um formulário onde o usuário deverá informar a localização do banco de dados que será compactado.
Ao executar o arquivo compacta.asp será exibida a seguinte tela: Ela apresenta o formulário onde o usuário vai informar o caminho e o nome da base de dados e se a versão do Access é a 97.
O código do arquivo compacta.asp é o seguinte:
<% </body> </html> |
A linha de código - Set fso = CreateObject("Scripting.FileSystemObject") - cria a variável objeto fso usando o método CreateObject.(leia o artigo Usando o FileSystemObject - FSO - Tratando arquivos e diretórios) e a seguir verifica se o arquivo que desejamos compactar existe - If fso.FileExists(CaminhoDB) Then. Se o arquivo existir verificamos se a base de dados é a versão Access 97 ou Access 2000 para efetuar a compactação usando o formato correto para versão correspondente do Jet. Asssim temos:
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & CaminhoDB, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" &
strCaminhoDB & "temp.mdb;" _
& "Jet
OLEDB:Engine Type=4"
Access 2000: É o formato padrão -(Engine Type=5)
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
CaminhoDB, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" &
strCaminhoDB & "temp.mdb"
A tela abaixo é exibida após a compactação ser realizada.
Após preencher o formulário e clicar no botão - Iniciar Compactação - a ação executada será o processamento do arquivo compacta.asp ( <form action=compacta.asp> ).
O código a seguir irá verificar se o caminho informado é valido e então chama a função : CompactaDB() passando os parâmetros : CaminhoDB ( o caminho e o nome da base de dados ) e Access97 que indica se a versão da base de dados é a versão 97.
If CaminhoDB <> "" Then
CaminhoDB =
server.mappath(CaminhoDB)
response.write(CompactaDB(CaminhoDB,Access97))
End If
Nota: O método MapPath permite que você determine o caminho físico no servidor informando um caminho virtual ou relativo.
É isso ai...
José Carlos Macoratti / Adaptado de um artigo da Aspalliance