Fórum Indexar minha tabela me ajudem? #158781

08/05/2003

0

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

Responder

Posts

08/05/2003

Arc

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


Responder

Gostei + 0

08/05/2003

Marcelo.c

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


Responder

Gostei + 0

08/05/2003

Marcelo.c

ou simplesmente:

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


Responder

Gostei + 0

08/05/2003

Vega.x

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar