Eduardo, segue uma rotina para indexar os arquivos paradox a partir de um
arquivo contendo o nome do arquivo, nome do indice e uma campo lógico para
indexação.
Estrutura do arquivo:
ARQUIVO      A    20    *
NOMEINDICE   A    70    *
INDEXAR      L

Eu tenho um form com um dbgrid que utiliza este arquivo, marco os arquivos a
serem indexados pelo campo lógico e executo a rotina abaixo.
Vc pode enfeitar o pavão, fazendo um form mais detalhado, com botoes para
atualizar o arquivo de indices, fazer um relatório pra documentar, pode
fazer o que quiser.
Note que o primeiro registro para cada arquivo é o indice primario, os
registros seguintes para o mesmo arquivo são referentes aos indices
secundarios, não tendo limites.

procedure TFRMindexar.BitBtn3Click(Sender: TObject);
var
   Warquivo: String;
begin
     BDindices.First;
     while not BDindices.Eof do begin
        if BDindices.FieldByName('Indexar').asBoolean = True then begin
           Try
              TBLindices.TableName :=
BDindices.FieldByName('Arquivo').asString;
              TBLindices.IndexDefs.Clear;
              TBLindices.AddIndex('
',BDindices.FieldByName('ChavePrimaria').asString,[ixPrimary, ixUnique]);
              Warquivo := BDindices.FieldByName('Arquivo').asString;
              BDindices.Next;

              if BDindices.FieldByName('Arquivo').asString = Warquivo then
                 while (BDindices.FieldByName('Arquivo').asString =
Warquivo) and
                       (not BDindices.Eof) do begin
                       if
Length(Trim(BDindices.FieldByName('NomeIndice').asString)) > 0 then
                          TBLindices.AddIndex('S'+IntToStr(BDindices.Recno),
                                     BDindices.FieldByName('NomeIndice').asS
tring,[ixCaseInsensitive]);
                       BDindices.Next; end;
              except
                    ShowMessage('Não consegui criar indice para a tabela: '
+
                                 BDindices.FieldByName('Arquivo').asString);
end; // Try
              end; // if
           end; // begin
     BDindices.Close;
     TBLindices.Close;
     ShowMessage('Todos os arquivos que foram marcados já estão
indexados.');
     Application.Terminate;
end;

-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
nome de Eduardo Silva ®
Enviada em: sexta-feira, 15 de abril de 2005 14:50
Para: delphi-br@yahoogrupos.com.br
Assunto: RES: [delphi-br] Problemas em Indices em Tabelas Paradox



Eu uso uma rotina para recriar os índices na mão mesmo.

Eu tb gosto muito do paradox, pra dizer a verdade ainda não peguei firme em
outro banco, então fico fazendo as coisas no paradox mesmo.

Vc poderia me explicar como é esse lance seu de colocar os indices na tabela
? Poderia me mandar as linhas pra eu ver como é ?

Obrigado.




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a