Index de ClientDateSet Composto

Delphi

20/02/2009

Andei pesquisando mas não encontrei nada sobre como criar Indices compostos no clientDataset

Ex:
Presciso fazer no ClientDataSet algo semelhante A
ORDER BY 1 ASC, 2 DESC, 3 ASC

Sei como criar um IndexDefs e atribuir ao IndexName, mas como fazer isso de maneira composta?


Diegotiemann

Diegotiemann

Curtidas 0

Respostas

Marco Salles

Marco Salles

20/02/2009

Sei como criar um IndexDefs e atribuir ao IndexName, mas como fazer isso de maneira composta?


Se vc sabe isto então vc sabe tudo.

[b:caf70caccf]Em tempo de design[/b:caf70caccf]

Vc separa os campos por Ponto e Virgula

Imagine um campo chamado Nome e outro Chamado Salario

Crio no Objecto inspector do CDS em INDEXFIELDS irá abrir o editing
Crio em Novo e defino :
Nome : Teste
Fields : Nome ; Salario // os campos separados por ponto e virgula
DescFields : Campos Descendentes .. Tb Separados por Ponto e virgulá
//se tiver mais de um
Options : Muitas opçoes para serem definidas a seu gosto 
<caseSensitive etc...


[b:caf70caccf]Definido[/b:caf70caccf] Vc chama este em tempo de execução :

Cds.indexName:=´TESTE´;


ps) Vc pode ter muitos desses Indices compostos

Vc tb pode criar Indices composto em RumTime


GOSTEI 0
Diegotiemann

Diegotiemann

20/02/2009

Deixa ver se entendi

Nome : DATA
Fields : DATA; VALOR_VENDA;
DescFields :DESC; ASC;


isso seria a mesma coisa que
order by DATA DESC, VALOR_VENDA ASC???


GOSTEI 0
Ivanh

Ivanh

20/02/2009

Vc soh precisa especificar os que serao DESC

Ex:

  Cds.AddIndex(´idxCds´,´DATA;VALOR_VENDA´,[],´DATA´);
  Cds.IndexDefs.Update;



GOSTEI 0
Diegotiemann

Diegotiemann

20/02/2009

ok obrigado


GOSTEI 0
Marco Salles

Marco Salles

20/02/2009

Vc soh precisa especificar os que serao DESC


isto mesmo.


Deixa ver se entendi
Nome : DATA Fields : DATA; VALOR_VENDA; DescFields :DESC; ASC;


em DescFields vc coloca qual ou quais campos serão descendentes
No seu exemplo :

Deixa ver se entendi

Nome : DATA 
Fields : DATA; VALOR_VENDA; 
DescFields :Data



GOSTEI 0
POSTAR