Ir para conteúdo
Fórum Script Brasil
  • 0

criar índice na criação de uma tabela


Guest sllc

Pergunta

Olá Colegas,

Estou fazendo um relatório e preciso pegar informações de várias tabelas. Para facilitar a minha vida, gerei uma tabela temporária para ler os registros no BD e gravar nesta tabela na forma em que preciso imprimir.

O problema é que nesta tabela tenho que ordernar os seguintes campos:

ANO,PONTOS e AMOSTRA

então: with AddIndexDef do

begin

Name := '';

Fields := 'ANO;PONTOS;AMOSTRA';

Options :=´[ixPrimary];

end;

está funcionando mas preciso que a pontuação esteja na ordem ascendente, ou seja, do maior para o menor e não encontro um jeito de mudar isso. Alguém poderia ajudar?

Agradeço muito.

Sergio

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
gerei uma tabela temporária para ler os registros no BD e gravar nesta tabela na forma em que preciso imprimir.

Como voce não informou qual é o banco de dados que usa ....

voce pode usar

CREATE INDEX idx_PONTOS ON minha_tabela (minha_coluna);

ou uma instrução SQL

Select * from minha_tabela

Order by PONTOS

mais informações:

http://www.freecode.com.br/forum/index.php?showtopic=10402

http://www.devmedia.com.br/clubedelphi/bor...se75-Parte2.asp

http://www.devmedia.com.br/articles/viewcomp.asp?comp=2623

http://www.uri.br/~preuss/delphibd/DelphiComBD.htm

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Para facilitar a minha vida, gerei uma tabela temporária para ler os registros no BD e gravar nesta tabela na forma em que preciso imprimir.
A sugestão é que você use uma consulta SQL para obter os dados na ordem que precisa.

E se ainda assim, precisar gerar a tabela temporária com estes dados, você já os terá na ordem desejada.

O problema é que nesta tabela tenho que ordernar os seguintes campos: ANO,PONTOS e AMOSTRA

então:

with AddIndexDef do
           begin
                Name := '';
                Fields := 'ANO;PONTOS;AMOSTRA';
                Options :=´[ixPrimary];
           end;

está funcionando mas preciso que a pontuação esteja na ordem ascendente, ou seja, do maior para o menor e não encontro um jeito de mudar isso.

acho que aqui você quiz dizer "decrescente" ao invés de "ascendente". ;)

Bom, nunca gerei um índice composto em que apenas um dos campos fosse em ordem inversa, mas acho que não seria possível, porque a informação sobre a ordenação vai na propriedade Options que não faz distinção de campo. Então, se quiser testar, faça: Options := [ixPrimary, ixDescending], apesar de que não sei se a chave primária aceita este flag na sua criação.

Voce pode dar uma olhada neste post que também se refere a uma proposta de solução para um problema similar.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...