Ir para conteúdo
Fórum Script Brasil
  • 0

Compacte Bancos De Dados Mdb Pelo Asp/vbs Script


Marcos-rj

Pergunta

Você pode compactar bancos de dados do Access (MDB) de uma aplicação ASP de duas formas:

1. Via DAO (versão 3.5 precisa estar instalada)

Set Engine = CreateObject("DAO.DBEngine.35")

Engine.CompactDatabase "path\database.mdb", "path\compacted_database.mdb"

2. JRO (MDAC 2.1 ou superior precisa estar instalado)

Set Engine = CreateObject("JRO.JetEngine")

Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path\database.mdb", _

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path\compacted_database.mdb"

Ambas as soluções não suportam a compactação para o mesmo nome de arquivo. Você precisa criar um banco de dados compactado temporário e então copiá-lo sobre o bancos de dados original.

Retirado de http://www.pstruh.cz/tips/detpg_CompactMDB.htm

Fonte: ASP4DEVELOPERS

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Um exemplo de uso:

<%
option explicit

Function CompactaDB(CaminhoDB,Access97)
Dim fso, Engine, strCaminhoDB
strCaminhoDB = left(CaminhoDB,instrrev(CaminhoDB,"\"))
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(CaminhoDB) Then
      Set Engine = CreateObject("JRO.JetEngine")
      If Access97 = "True" Then
           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"
      Else
           Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CaminhoDB, _
           "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strCaminhoDB & "temp.mdb"
      End If
      fso.CopyFile strCaminhoDB & "temp.mdb",CaminhoDB
      fso.DeleteFile(strCaminhoDB & "temp.mdb")
      Set fso = nothing
      Set Engine = nothing
      CompactaDB = "Seu banco de dados, " & CaminhoDB & ", foi compactado com sucesso" & vbCrLf
Else
      CompactaDB = "O Caminho ou o banco de dados não foi localizado.Tente outra vez..." & vbCrLf
End If

End Function
%>
<html><head><title>Compactação ON-LINE</title></head><body>

<h2 align="center"> Compactando uma base de dados Access Remota</h2>
<p align="center">
<form action=compacta.asp>
  Informe o caminho relativo da base de dados incluindo o nome do banco de dados.<br><br>
  <input type="text" size="50" name="CaminhoDB"><br><br>
  <input type="checkbox" name="Access97" value="True">Clique Aqui se a versão for Access 97<br><i> ( Access 2000 é o padrão )</i><br><br>
  <input type="submit" value="Iniciar Compactação">
<form>
<br><br>
<%
Dim CaminhoDB,Access97
CaminhoDB = request("CaminhoDB")
Access97 = request("Access97")

If CaminhoDB <> "" Then
   CaminhoDB = server.mappath(CaminhoDB)
   response.write(CompactaDB(CaminhoDB,Access97))
End If
%>
</p>

</body>

JRO é uma extensão da ADO: Microsoft Jet OLE DB Provider and Replication Objects (JRO).

Link para o comentário
Compartilhar em outros sites

  • 0

to ligado, mas é que eu não conheco esse JRO e não sei qual a dll dele nem nada. muito menos esse MDAC. ai como eu vi que dava pra fazer com DAO, quis saber se dava pra fazer com ADO, que seria melhor para mim. mas valeu, se eu descobrir alguma coisa eu posto.

Link para o comentário
Compartilhar em outros sites

  • 0

JRO é uma extensão da ADO: Microsoft Jet OLE DB Provider and Replication Objects (JRO).

A ADO não nos fornece meios para reparar ou compactar um banco de dados Access. Para realizar tal tarefa devemos usar uma extensão da ADO: Microsoft Jet OLE DB Provider and Replication Objects (JRO). Esta capacidade foi implementada a partir da versão 4.0 do PROVEDOR JET OLE DB (Mjsetoledb40.dll) e da versão 2.1 da JRO (Msjro.dll) . Esses arquivos estão disponíveis para instalação na MDAC 2.1

Universal Data Access Web Site

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...