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

Indexar Coluna Dbgrid


vms

Pergunta

Ola pessoal, estou com 2 duvidas

Primeiro duvida

Queria organizar o dbgrid clicando na coluna

A tabela é o seguinte

Nome______ | A |__ | * |

Num-disco__ | A |

(paradox e table)

Encontrei essa função na Net e estou com dificuldades em coloca-la no projeto

Indexar clicando numa coluna da grade (dbgrid) c/ clientdataset

Essa rotina foi feita por um amigo, o Emerson e a transformei numa função.

Atenção: inclua o seguinte comando no evento BeforeClose do ClientDataSet

ClientDataSet1.IndexFieldNames := ClientDataSet.Fields[0].FieldName;

Isso é necessário quando:

você indexa a grade de forma decrescente, fecha e abre o ClientDataSet.

procedure IndexaColuna(grade: TDBGrid; campo: string);

begin

with TClientDataSet(grade.DataSource.DataSet) do

//Ordem crescente

if IndexFieldNames <> campo then

IndexFieldNames := campo

else

//Se já havia clicado no campo, indexa em ordem decrescente

//Acrescento o 'Dec' apenas p/ não correr o risco do nome já existir

try

IndexName := campo+'Dec';

except

AddIndex(campo+'Dec',campo,[ixDescending],campo,'',0);

IndexName := campo+'Dec';

end;

end;

Caso você utilize a TTable, basta fazer as alterações na chamada, é isso.

Segunda duvida

O que estou tendo fazer é um gerenciador de arquivos dos meus CD’S

Exemplo: tenho uma linha do dbgrid assim

Nome|................|Num-disco

coreldraw|.........|30

Se coloco uma outra linha com mesmo nome e Num disc, dar o seguinte erro

Key Violation

alguém pode me ajudsa?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Ola pessoal, estou com 2 duvidas

Primeiro duvida

Queria organizar o dbgrid clicando na coluna

A tabela é o seguinte

Nome______ | A |__ | * |

Num-disco__ | A |

(paradox e table)

Dê uma olhada neste post.

Observe que para executar este procedimento, devem haver índices ordenando a tabela pelos campos desejados. No seu caso, você já tem um pelo Nome, faltaria um índice secundário para Num-disco.

Segunda duvida

O que estou tendo fazer é um gerenciador de arquivos dos meus CD’S

Exemplo: tenho uma linha do dbgrid assim

Nome|................|Num-disco

coreldraw|.........|30

Se coloco uma outra linha com mesmo nome e Num disc, dar o seguinte erro

Key Violation
Isto vai realmente ocorrer já que chaves primárias (aquela com o '*') devem ser únicas.

Se necessário for, você deverá organizar a estrutura de sua tabela de alguma outra forma.

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...