Indexar minha tabela me ajudem?

Delphi

08/05/2003

Eu tenho uma tabela chamada Clientes.db, no c:\Banco de Dados \ Tabelas.
Eu queria criar um procedimento em um Botao para indexar essa tabela, mas como sou um iniciante em delphi que comando eu uso nesse botão
Obs Eu uso Banco de dados Paradox 7.

Desde já muito obrigado.


Marcelototini

Marcelototini

Curtidas 0

Respostas

Arc

Arc

08/05/2003

Vc precisa criar as chaves da tabela atraves do DataBase Desktop

Como sua tabela esta pronta abra o Database, Tools, Utilities, Restructure, selecione o seu banco de dados

Em Table Properties, selecione Secondary Indexes, clique em Define, selecione um dos campos em Fields, clique na seta para a direita, clique em OK e de um nome para a sua chave...

No delphi, selecione a tabela, em indexname escolha a sua chave, que vai ser o indice da sua tabela


GOSTEI 0
Marcelo.c

Marcelo.c

08/05/2003

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.

Esta rotina tem solucinado muitos problema em rede paradox, pois se esta rotina não funcionar ou funcionar me mande um email para discutirmos sobre ela


GOSTEI 0
Marcelo.c

Marcelo.c

08/05/2003

ou simplesmente:

uses
dbTables, DbiProcs;
begin
table1.exclusive := true;
table1.open;
dbiRegenIndexes(table.Handle);
end;


GOSTEI 0
Vega.x

Vega.x

08/05/2003

Aproveitando a deixa, como eu faço para reindexar tabelas do MS-Access, utizando ADO, com Delphi 7?


GOSTEI 0
POSTAR