Como compactar o banco de dados do Microsoft Access através de ADO

Traduções de Artigos Traduções de Artigos
Artigo: 230501
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Embora a especificação de ADO não fornece objetos compactar bancos de dados do Microsoft Access, esse recurso pode ser obtido usando a extensão do ADO: provedor de BD OLE para Microsoft Jet e Replication Objects (JRO). Esse recurso foi implementado pela primeira vez na versão do JET OLE DB Provider 4.0 (2004) e versão 2.1 (MSJRO. dll) do JRO. Esses arquivos DLL estão disponíveis após a instalação do MDAC 2.1. Você pode baixar a versão mais recente do MDAC no seguinte site da Web:
Universal Data Access Web Site

Mais Informação

Para compactar um banco de dados usando ADO, MDAC 2.1 ou posterior deve ser instalado corretamente no computador. A seguir estão as etapas principais para compactar um banco de dados do Microsoft Access usando o Visual C++ e o Visual Basic:

Visual Basic: Compactar um banco de dados Access via ADO

  1. No IDE de Visual Basic, no menu projetos , clique em referências.
  2. Adicionar biblioteca de objetos de replicação x. x e Microsoft Jet, onde (x. x é maior ou igual a 2.1).
  3. Adicione as seguintes linhas de código para Visual Basic, substituindo os caminhos de banco de dados de origem e de destino de dados, se necessário:
    Dim jro As jro.JetEngine
    Set jro = New jro.JetEngine
    jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\nwind2.mdb;Jet OLEDB:Database Password=test", _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abbc2.mdb;Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test"
    					
Observação: No DAO 3.60 método RepairDatabase não está mais disponível. O código acima mostra o uso do método CompactDatabase. Esse método substitui o método RepairDatabase do DAO 3.5.

Visual C++: Compactar um banco de dados Access via ADO

  1. Além de # import, Msado15 (MDAC2.1), adicione a seguinte instrução # import para gerar as classes de wrapper para JRO às classes. cpp (como alternativa, você pode gerar as classes de wrapper com mais eficiência usando os atributos no_implementation e implementation_only da instrução # import pre-processor):
    #import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace 
    					
  2. Adicione o seguinte (especificando seus próprios caminhos de banco de dados de origem e destino) para o arquivo. cpp em que você deseja compactar o banco de dados:
    ...
    try
    {
       IJetEnginePtr jet(__uuidof(JetEngine));
      jet->CompactDatabase( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb;Jet OLEDB:Database Password=test", 
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;" \ 
    "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Password=test");
    }
    catch(_com_error &e) 
    {       
       ::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;    
    }
    					
Observação: O tipo de OLEDB:Engine Jet = 4 é apenas para arquivos do Jet 3. x formato MDB. Se esse valor será deixado de fora, o banco de dados será automaticamente atualizado para a versão 4.0 (Jet OLEDB:Engine tipo = 5). Consulte a tabela a seguir para os valores apropriados para o tipo de OLEDB:Engine de Jet:
Reduzir esta tabelaExpandir esta tabela
Tipo de OLEDB:Engine JetArquivos no formato MDB do Jet x. x
1JET10
2JET11
3JET2X
4JET3X
5JET4X

Referências

Para obter informações adicionais, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
230496 Compactar banco de dados do Microsoft Access através de OLE DB

Propriedades

Artigo: 230501 - Última revisão: 16 de maio de 2012 - Revisão: 1.0
Palavras-chave: 
kbhowto kbjet kbprovider kbmt KB230501 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 230501
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com