Buscar

Criando arquivos dbf com índices compostos.

Código

{
Quem trabalha com DBF's já encontrou problemas para criar índices compostos, ou seja,
um índice que tenha mais de um campo, em tempo de execução.
Isto ocorre por dois motivos, embora exista na internet documentação sobre o assunto,
dizendo ser possível, ainda não encontrei ninguem que tenha tido sucesso nesta tarefa.
O outro motivo é a existencia de um parâmetro não documentado, necessário para
arquivos DBF's ixExpression que informa o Delphi que se trata de um índice com mais de
um campo.
Como trabalhar com DBF's é comum para a maioria dos programadores que vem do
Clipper, acho interessante solucionar este problema da melhor forma possível.
assim a criação do índice fica para logo depois da criação da tabela,como mostra o
segmento de codigo abaixo.
}


uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, DB, DBTables;
procedure TForm1.Button1Click(Sender: TObject);
var
  Table1 : TTable;
begin
  { Criar arquivos }
Table1 := TTable.create(Application);
  { Cria arquivo }
with Table1 do
   begin
     Active := False;
     DatabaseName := 'C:';
     TableName := 'teste';
     TableType := ttdBASE;
      with FieldDefs do
         begin
           Clear;
           Add('Name1', ftString, 20, False);
           Add('Name2', ftString, 20, False);
          Add('Name3', ftString, 20, False);
          Add('Name4', ftString, 20, False);
       end;
    CreateTable;
    AddIndex('Indice1', 'Name1 + Name2', [ixExpression]);
    AddIndex('Indice2', 'Name2 + Name3', [ixExpression]);
    AddIndex('Indice3', 'Name3 + Name4', [ixExpression]);
 end;
end;

// Na prática, criar os índices com AddIndex() logo após CreateTable,
// não vai influenciar em nada o seu programa.

Publicidade

Vote na dica




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


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 13/01/04
Por: Fabricio Giovanni Costa De Souza
Visualizada: 8247 vezes

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