Índice: O que é? - Delphi
Veja neste artigo o que seria um Índice
Mas o que é Índice? Imagine um livro sem um índice, demoraríamos muito tempo para encontrar o assunto que desejamos. O índice serve para mostrar, indicar ou revelar algo, é uma lista de elementos dentro de uma determinada ordem. No Delphi nós podemos criar Índices em ordem Crescente e Decrescente, nos possibilitando encontrar mais facilmente os registros em nossos componentes de visualização de dados como o DbGrid.
Existe dois tipos de índices, o temporário e o persistente. O índice temporário é feito em memória assim como o persistente, a diferença que o temporário eu não posso reutilizá-lo já o persistente eu posso reutilizá-lo, ele nos permite ordenar em ordem crescente e decrescente.
Nesse artigo iremos conhecer como trabalhar com índice utilizando as propriedades IndexDefs e IndexFieldNames do ClientDataSet.
Crie um Banco de dados e uma tabela com os seguintes campos e preencha:
|
Nome |
Tipo |
Chave |
|
ID |
Integer |
Chave Primária |
|
Nome |
Varchar(30) |
|
|
Cidade |
Varchar(25) |
|
|
UF |
Char(02) |
|
|
Telefone |
Varchar(12) |
|
|
Salario |
Numeric(10,2) |
|
A tabela será composta pelos seguintes registros:
ID Nome Cidade UF TelefoneSalario
|
1 |
Rubens Antunes |
Juiz de Fora |
MG |
32 32137360 |
1200,00 |
|
2 |
Amanda da Silva |
Rio de Janeiro |
RJ |
21 53216540 |
850,40 |
|
3 |
Samuel Gomes |
Rio de Janeiro |
RJ |
21 30254780 |
934,50 |
|
4 |
Maria de Oliveira |
Juiz de Fora |
MG |
32 32112891 |
1345,20 |
|
5 |
Gilmar Habel |
São Paulo |
SP |
11 67892341 |
450,00 |
|
6 |
Cristiano Alves |
São Paulo |
SP |
11 76530912 |
850,40 |
|
7 |
Bruno Sempre |
São Paulo |
SP |
11 35680951 |
934,50 |
|
8 |
Fernanda Brum |
Rio de Janeiro |
RJ |
21 36489399 |
450,00 |
|
9 |
Walter Pereira |
Belo Horizonte |
MG |
31 34256579 |
620,10 |
|
10 |
Ana Maria Braga |
Belo Horizonte |
MG |
31 34577822 |
620,10 |
|
11 |
Maria Bonita |
Brasilia |
DF |
61 46484894 |
450,00 |
|
12 |
Fernando Henrique |
Brasilia |
DF |
61 37383883 |
934,50 |
|
13 |
Jaqueline Fernandes |
Brasilia |
DF |
61 83578353 |
1840,00 |
|
14 |
Mateus Bortolozo |
Juiz de Fora |
MG |
32 38974844 |
1525,00 |
|
15 |
Camila Cabete |
Rio de Janeiro |
RJ |
21 38444994 |
430,00 |
|
16 |
Fabiana Queiroz |
Belem |
PA |
91 48747488 |
650,30 |
|
17 |
Andressa Sanchez |
Rio de Janeiro |
RJ |
21 44748498 |
765,23 |
|
18 |
Rodrigo Rocha |
Rio de Janeiro |
RJ |
21 48458484 |
1200,00 |
|
19 |
Fabricia Queiroz |
Juiz de Fora |
MG |
32 35477444 |
1345,20 |
|
20 |
Rubens Oliveira |
Belo Horizonte |
MG |
32 36373783 |
44,23 |
Nota
Crie um projeto no Delphi e deixe-o como a figura abaixo, neste formulário você deverá ligá-lo ao nosso banco de dados e fazer uso da nossa tabela, deverá ter também um SqlDataSet que será ligado ao SqlConnection um Provider que será ligado ao SqlDataSet e um ClientDataSet que será ligado ao Provider esse ClientDataSet receberá o nome de cdsPessoa.
Propriedade IndexFieldNames
O Delphi trabalha como padrão, o índice Ascendente(Crescente), para criarmos um índice basta selecionar o nosso cdsPessoa e ir na propriedade IndexFieldNames e colocar o nome do campo o qual desejamos ordenar, coloque o campo nome, e execute a aplicação e perceba que ele nos traz os registros ordenados por nome.
Figura 01
Dica: Se quisermos também ordenar por mais de um campo, basta separar por ponto e virgula (;) os nomes dos campos na propriedade indexfieldNames.
Propriedade IndexDefs
Essa propriedade é responsável para armazena uma lista de índices, podendo ser definido quais serão os índices primários, secundários e até índices únicos.
Podemos também criar uma lista de índice e utilizá-la como quisermos, para isso temos que utilizar a propriedade IndexDefs, Essa propriedade nos possibilita também ordenar em ordem decrescente.
Selecione o nosso ClientDataSet cdsPessoa e clique na reticência em frente a propriedade IndexDefs do ClientDataSet e abrirá uma caixinha, clique no botão Add New e ele adicionará um novo índice. Na propriedade Fields coloque Nome e dê um clique na propriedade Options e passe para true a propriedade ixDescending e mude a propriedade name para indicenome, feche a caixinha. Na propriedade IndexName escolha o nome do índice que foi criado. Execute a aplicação e perceba na figura 02 que ele está ordenando em ordem Decrescente o campo Nome, só porque mudamos a propriedade IxDescending para true.
Segue na tabela a seguir as descrições de cada propriedade do IndexDefs:
IndexDefs
|
Propriedade |
Descrição |
|
Name |
Nesta propriedade se dar o nome do índice |
|
Fields |
Nesta propriedade podemos definir quais os campos serão composto o nosso índice, sabendo que podemos separar um campo do outro utilizando ponto e vírgula (;). |
|
DescFields |
Uma lista de campos contida na propriedade fields a qual queremos ordenar em ordem Decrescente, um exemplo interessante é colocarmos o campo Cidade, você irá perceber que só o campo cidade será ordenado em ordem decrescente. |
|
CaseInsFields |
Uma lista de campos contidos na propriedade Fields que deveria ser indexada de uma maneira não sensível a casos. |
|
GroupingLevel |
Propriedade usada para agregação. |
Propriedade Options
|
Propriedade |
Descrição |
|
IxPrimary |
Define o índice como sendo o principal de uma lista de índices. |
|
IxUnique |
Define que ele é um índice único de uma lista de índices. |
|
IxDescending |
Define que o índice será ordenado em ordem decrescente. |
|
IxCaseinsensitive |
Define que o índice não será sensível a casos. |
Fico por aqui, no próximo falarei sobre outras propriedades, até lá
Rubens Antunes
Autor do Livro: Delphi – Faça Uma Aplicação Comercial
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo