Buscar

Reindexando

Código

{Quando cai a "Energia" e suas Tabelas perdem os índices, esta rotina pode ser útil para restauração dos índices.  Para usar você terá que adicionar os componentes:

 Table

Database { se sua aplicação possuir este componente pode usar o mesmo}


 O componente Table a propriedade exclusive tem que ser true. Senão não funciona.}


Procedure Reindexar(DataBase : TDatabase; Tabela : TTable);
var
  List : TStrings;
  i : Integer;
begin
  try
  Database.Connected:=true;
  except
  Raise;
  Exit;
  end;
List:=TStringList.create;
session.GetTableNames(DataBase.aliasName, '', true, false,List);
for i:= 0 to List.Count - 1 do
begin
  if (Entidade2) then
  break;
  application.ProcessMessages;
  Tabela.close;
  Tabela.TableName:=List[i];
  Try
  Tabela.open;
  Check(dbiRegenIndexes(Tabela.Handle));
  except
  Raise;
  end;
end;
List.Free;
Database.Connected:=false;
end; { Para executar a rotina você pode Incluir quando sua aplicação esta sendo iniciada

 Adicionando a seguinte linha.

 No evento oncreate do Datamodulo}


 Reindexar(Dados,Table1); {Dados Nome imposto por mim ao componente Database e Table1 o componente inserido na aplicação. }

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 24/06/03
Por: Felipe Monteiro
Visualizada: 13033 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009