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

Erro Ao Compactar Banco De Dados Access.


Livio Neiva

Pergunta

Este tópico vai mostrar como compactar o banco de dados criado no Access para eliminar todo seu espaço excedente, reduzindo assim, o tamanho do arquivo de banco de dados.

Procedimentos a serem executados:

Acrescente um Panel invisível (Visible = False) na tela FrmMenuPrin.

Na Unit da tela FrmMenuPrin, acrescente a unit ComObj na sua cláusula Uses e crie a procedure abaixo:

Procedure TFrmMenuPrin.Compactar;
Var
  dao : OLEVariant;
Begin
  Panel1.Visible := True;
  Dm.Conexao.Connected := False;
  Try
    Panel1.Caption := 'Compactando.Tabela';
    Panel1.Repaint;
    dao := CreateOleObject('ADO.DBEngine.36');
    dao.CompactDataBase(ExtractFileDir(Application.ExeName)+'\Banco.mdb',
    ExtractFileDir(Application.ExeName)+'\Banco2.mdb','',0,'');
    Panel1.Caption:='Apagando Arquivo Temporário';
    Panel1.Repaint;
    if FileExists(ExtractFileDir(Application.ExeName)+'\Banco2.mdb')then
      DeleteFile(ExtractFileDir (Application.ExeName)+'\Banco.mdb');
    Panel1.Caption:='Renomeando Arquivo';
    Panel1.Repaint;
    if FileExists(ExtractFileDir(Application.ExeName)+'\Banco2.mdb') then
      RenameFile(EXtractFileDir(Application.Exename)+'\Banco2.mdb',
    ExtractFileDir (Application.ExeName)+'\Banco.mdb');
    Panel1.Caption:='Arquivo Banco.mdb Compactado';
    Panel1.Repaint;
  Except
    Panel1.Caption:='Ocorreu um erro durante a Compactação';
  end;
  Dm.Conexao.ConnectionString := 'provider=Microsoft.jet.OLEDB.4.0;Data Souser='+
  ExtractFilePath(Application.ExeName)+'Banco.mdb;Persist Security info=False;';
  DM.Conexao.Connected := True;
  Panel1.Visible := False;
end;

procedure TFrmMenuPrin.actCompExecute(Sender: TObject);
begin
  if MessageDlg('Antes de confirmar esta operação, feche o banco de dados.'+#13+
                'Deseja efetuar a compactação do Banco de Dados?',
                mtConfirmation, [mbYes,mbNo], 0) = mrNo then
    abort;
  Compactar;
end;

O programa compila!!! e abre o sistema mais quando eu peço para compactar o banco de dados da erro e informa essa menssagem:

Não foi possivel encontrar o ISAM instalável

Como faço para resolver esse problema

agradeço a atenção de todos

livio_neiva@hotmail.com

Editado por Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...