Jump to content
Fórum Script Brasil
  • 0

Indexar Coluna Dbgrid


vms
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...