Ajuda - Busca - Membros - Calendário
Versão Completa: Erro Ao Compactar Banco De Dados Access.
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Livio Neiva
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:
CODE
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
Jhonas
Entre neste endereço, mostra como solucionar o problema:

http://support.microsoft.com/kb/209805/pt-br
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.